Patent Description:
With the development of electronic technologies, various types of electronic devices are being developed and supplied. In recent years, portable electronic devices, which have a variety of functions, such as a smart phone, a tablet personal computer (PC), and the like are widely used.

Most electronic devices that were recently developed have used a touch panel (or a pen sensor panel) as an input device. In particular, a user may intuitively input a user manipulation to a touch screen combined with a display.

<CIT> discloses a method that includes detecting movement of a touch on a touch-sensitive display of an electronic device from a first touch location to a second touch location.

<CIT> and <CIT> are directed to touch movement detection.

<CIT> discloses a method for differentiating between tap and drag events.

A touch screen (e.g., a touch panel (or a pen sensor panel)) included in a display may have a reduced reaction speed or reduced accuracy of a touch manipulation based on a processing time or a processing method of a touch movement of a user.

An aspect of the present disclosure is to provide an input processing method and device capable of improving the reaction speed or the accuracy of a touch manipulation.

According to various embodiments of the present disclosure, the reaction speed or the accuracy of the touch manipulation of a user may be improved, thereby providing the user with an excellent user experience. According to various embodiments of the present disclosure, power consumed to drive an input panel may be reduced.

The above and other aspects, features, and advantages of certain embodiments of the present disclosure will be more apparent from the following description, taken in conjunction with the accompanying drawings, in which:.

Various embodiments of the present disclosure may be described with reference to the accompanying drawings. Accordingly, those of ordinary skill in the art will recognize that a modification, an equivalent, and/or an alternative on the various embodiments of the present disclosure described herein may be variously made without departing from the scope of the present disclosure which is defined by the appended set of claims. With regard to the description below of the accompanying drawings, similar elements may be marked by similar reference numerals.

In the present disclosure, the expressions "have," "may have," "include," "comprise," "may include," and "may comprise" used herein indicate the existence of corresponding features (e.g., elements such as numeric values, functions, operations, or components) but do not exclude the presence of additional features.

In the present disclosure, the expressions "A or B," "at least one of A and/or B," "one or more of A and/or B," and the like used herein may include any and all combinations of one or more of the associated listed items. For example, the terms "A or B," "at least one of A and B," and "at least one of A or B" may refer to all of case (<NUM>) where at least one A is included, case (<NUM>) where at least one B is included, and case (<NUM>) where both of at least one A and at least one B are included.

The terms "first," "second," and the like used herein may refer to various elements of various embodiments of the present disclosure, but do not limit the elements. For example, "a first user device" and "a second user device" may indicate different user devices regardless of the order or priority thereof. For example, without departing from the scope of the present disclosure, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element.

When an element (e.g., a first element) is referred to as being "(operatively or communicatively) coupled with/to" or "connected to" another element (e.g., a second element), the element may be directly coupled with/to or connected to the other element or an intervening element (e.g., a third element) may be present. In contrast, when an element (e.g., a first element) is referred to as being "directly coupled with/to" or "directly connected to" another element (e.g., a second element), it should be understood that there are no intervening element (e.g., a third element).

According to the situation, the expression "configured to" used herein may be used as, for example, the expression "suitable for," "having the size to," "designed to," "adapted to," "made to," or "capable of. " The term "configured to" must not indicate only "specifically designed to" in hardware. Instead, the expression "a device configured to" may indicate that the device is "capable of" operating together with another device or other components. For example, a "processor configured to (or set to) perform A, B, and C" may indicate a dedicated processor (e.g., an embedded processor) for performing a corresponding operation or a general purpose processor (e.g., a central processing unit (CPU) or an application processor) which performs corresponding operations by executing one or more software programs which are stored in a memory device.

Terms used in the present disclosure are used to describe certain embodiments but are not intended to limit the scope of the present disclosure. The terms of a singular form may include plural forms unless otherwise specified.

All the terms used herein, may have the same meanings that are generally understood by a person skilled in the art. Terms, which are defined in a dictionary and commonly used, should also be interpreted as is customary in the relevant related art and not in an idealized or overly formal way unless expressly so defined herein in various embodiments of the present disclosure. In some cases, even if terms are terms which are defined in the present disclosure, they may not be interpreted to exclude embodiments of the present disclosure.

For example, an electronic device according to various embodiments of the present disclosure may include at least one of smartphones, tablet personal computers (PCs), mobile phones, video telephones, electronic book readers, desktop PCs, laptop PCs, netbook computers, workstations, servers, personal digital assistants (PDAs), portable multimedia players (PMPs), motion picture experts group (MPEG-<NUM> or MPEG-<NUM>) audio layer <NUM> (MP3) players, mobile medical devices, cameras, and wearable devices. According to various embodiments of the present disclosure, a wearable device may include at least one of an accessory type of a device (e.g., a timepiece, a ring, a bracelet, an anklet, a necklace, glasses, a contact lens, or a head-mounted-device (HMD)), a one-piece fabric or a clothes type of a device (e.g., electronic clothes), a body-attached type of a device (e.g., a skin pad or a tattoo), and a bio-implantable type of a device (e.g., an implantable circuit).

In an embodiment of the present disclosure, an electronic device may be a home appliance. A home appliance may include at least one of, for example, a television (TV), a digital versatile disc (DVD) player, an audio player, a refrigerator, an air conditioner, a cleaner, an oven, a microwave oven, a washing machine, an air cleaner, a set-top box, a home automation control panel, a security control panel, a TV box (e.g., Samsung HomeSync®, Apple TV®, or Google TV), a game console (e.g., Xbox® or PlayStation®), an electronic dictionary, an electronic key, a camcorder, and an electronic picture frame.

<FIG> is a block diagram of an electronic device <NUM>, according to an embodiment of the present disclosure.

Referring to <FIG>, the electronic device <NUM> may include an input panel <NUM>, a display <NUM>, a memory <NUM>, and a processor <NUM>.

The input panel <NUM> may sense a user manipulation (e.g., a touch manipulation or a pen manipulation). The input panel <NUM> may include a panel <NUM> and a panel control module <NUM>.

The panel <NUM> (e.g., a touch screen) may receive a driving signal generated at the panel control module <NUM> and may scan channels in response to the driving signal. For example, while channels are being scanned, a capacitance or an electric field may be changed if a certain object is adjacent to a certain position of the panel <NUM>. A change in a capacitance or an electric field may be sent to the panel control module <NUM>. The panel <NUM> may include a touch sensor panel that senses a touch manipulation of a user or a pen sensor panel that senses a pen manipulation of a user. The touch sensor panel and the pen recognition panel may operate similarly or differently. In the case where the touch sensor panel and the pen recognition panel operate similarly (e.g., a capacitive method), the touch sensor panel and the pen recognition panel may be the same panel.

The panel control module <NUM> may generate a driving signal and may provide the driving signal to the panel <NUM>. The panel control module <NUM> may sense touch coordinates (e.g., pixel coordinates) corresponding to a touch manipulation (or a pen manipulation) by analyzing a signal received from the panel <NUM>. The panel control module <NUM> may sense touch coordinates corresponding to a touch manipulation of a user during a certain period (e.g., <NUM> (millisecond)) (or at a frequency (e.g., <NUM>)). For example, the panel control module <NUM> may sense touch coordinates corresponding to the touch manipulation of a user by periodically supplying a driving signal to the panel <NUM>. The panel control module <NUM> may sense x-axis and y-axis touch coordinates corresponding to a touch manipulation of a user. Touch coordinates may include, for example, an x-axis coordinate and a y-axis coordinate corresponding to a touch manipulation.

The panel control module <NUM> may send touch coordinates to the processor <NUM>. For example, the panel control module <NUM> may send touch coordinates to the processor <NUM> during a certain period (e.g., <NUM>).

The input panel <NUM> may sense a user manipulation input by a user with the user's finger or a pen spaced apart from the panel <NUM> by a certain distance, as well as a user manipulation input if the user makes direct contact with the panel <NUM> (e.g., a touch sensor panel or a pen recognition panel).

The display <NUM> may present a user interface. The display <NUM> may update a display screen during a certain period (e.g., <NUM>) (or at a frequency (e.g., <NUM>)). For example, the display <NUM> may update the display screen in synchronization with a vertical synchronization signal (e.g., Vsync) received during a certain period.

The input panel <NUM> and the display <NUM>, for example, may be implemented with a touch screen that is capable of displaying and sensing a touch manipulation at the same time. In the touch screen, the input panel <NUM> may be disposed on a display panel.

The memory <NUM> may store a reference value (e.g., mtouchslop) for determining a movement of a touch manipulation. If a reference value is changed by the processor <NUM>, the memory <NUM> may store the changed reference value. The memory <NUM> may store a reference value that is capable of being applied, in common, to an application installed in the electronic device <NUM>. The memory <NUM> may store reference values that are different from each other for respective applications installed in the electronic device <NUM>. A unit of a reference value stored in the memory <NUM> may be pixels or density-independent pixels (DP).

The processor <NUM> may control overall operations of the electronic device <NUM>. The processor <NUM> may include at least one processor. The processor <NUM> may process a touch manipulation of a user according to an embodiment of the present disclosure by controlling the input panel <NUM>, the display <NUM>, and the memory <NUM>, respectively. The processor <NUM> (e.g., an application processor (AP)) may be implemented with a system on chip (SoC) including a central processing unit (CPU), a graphics processing unit (GPU), a memory, and the like.

The processor <NUM> may determine a touch event corresponding to touch coordinates. A touch event may include, for example, a touch down event (or a touch start event), a touch move event, and a touch up event (or a touch end event). For example, the processor <NUM> may determine that touch coordinates, which are sensed for the first time on one successive touch manipulation, correspond to a touch down event. As another example, the processor <NUM> may determine that touch coordinates, which are sensed last on one successive touch manipulation, correspond to a touch up event. As another example, the processor <NUM> may determine that touch coordinates other than the touch coordinates that are sensed for a first time or for a last time on one successive touch manipulation correspond to a touch move event.

<FIG> is a plot of a resampling result of touch coordinates, according to an embodiment of the present disclosure.

The processor <NUM> may resample touch coordinates received from the input panel <NUM>. The processor <NUM> may resample touch coordinates based on an update period of the display <NUM>. For example, if a sensing period of an input panel <NUM> is <NUM> and an update period of the display <NUM> is <NUM>, the processor <NUM> may resample touch coordinates, which are received from the input panel <NUM> per <NUM>, based on a time of <NUM> being an update period of the display <NUM>. The resampled touch coordinates may be determined by using, for example, interpolation or extrapolation.

Referring to <FIG>, a movement distance of touch coordinates over time is illustrated. The touch coordinates illustrated in <FIG> may include touch coordinates a1 to a6, which are sensed by the input panel <NUM> during a certain period (e.g., <NUM>), and touch coordinates b1 to b4 that are resampled by the processor <NUM> based on an update period of the display <NUM>. According to an embodiment of the present disclosure, the processor <NUM> may resample touch coordinates such that the touch coordinates correspond to a timing faster than each of update timings t1 to t5 of the display <NUM> (e.g., a timing that is faster by <NUM> than each of the update timings t1 to t5), based on a time at which a touch manipulation is processed. If the first touch coordinates for a1 are received from the input panel <NUM>, the processor <NUM> may determine the first resampling coordinates for b1 by using extrapolation. If the second touch coordinates a2 and the third touch coordinates for a3 are received from the input panel <NUM>, the processor <NUM> may determine the second resampling coordinates for b2 by using interpolation. If the fourth touch coordinates for a4 are received from the input panel <NUM>, the processor <NUM> may determine the third resampling coordinates for b3 by using extrapolation. If the fifth touch coordinates for a5 and the sixth touch coordinates for a6 are received from the input panel <NUM>, the processor <NUM> may determine the fourth resampling coordinates for b4 by using interpolation.

When the sensing period of the input panel <NUM> is shorter than the update period of the display <NUM>, the processor <NUM> may receive a plurality of touch coordinates during the update period of the display <NUM>. If a plurality of touch coordinates is received during an update period of the display <NUM>, the processor <NUM> may process the plurality of touch coordinates at the same time or may not process a part of the touch coordinates.

The processor <NUM> may calculate a variation (or a difference value) of touch coordinates by using the touch coordinates received from the input panel <NUM>. The processor <NUM> may periodically receive touch coordinates from the input panel <NUM>. The processor <NUM> may calculate a variation between two successive touch coordinates. For example, if first touch coordinates and second touch coordinates are periodically received, the processor <NUM> may calculate a variation between the first touch coordinates and the second touch coordinates. The processor <NUM> may calculate a variation of each of an x-axis coordinate and a y-axis coordinate. A unit of a variation may be, for example, pixels.

The processor <NUM> may calculate a variation of touch coordinates by using original touch coordinates received from the input panel <NUM>. For example, the processor <NUM> may calculate a variation of touch coordinates by using touch coordinates that are not resampled.

When a user inputs a touch manipulation (or a pen manipulation) to the input panel <NUM> even though the user does not intend to move a touch manipulation (e.g., in the case where the user inputs a tap manipulation), touch coordinates sensed by the input panel <NUM> may move due to an effect by an area of a finger or by a minute motion of a finger. To prevent a malfunction (e.g., a movement of a touch manipulation) that a user does not intend, the processor <NUM> may use a reference value for determining whether a touch manipulation moves.

The processor <NUM> may determine whether a touch manipulation moves, based on a reference value. For example, the processor <NUM> may compare a variation of touch coordinates to a reference value and determine whether a touch manipulation moves, based on the comparison. If a variation of touch coordinates is greater than or equal to a reference value, the processor <NUM> may determine that a touch manipulation moved. If a variation of touch coordinates is less than a reference value, the processor <NUM> may determine that a touch manipulation stopped (or that a touch manipulation does not move). The processor <NUM> may determine whether a touch manipulation moves, based on each of a variation of an x-axis coordinate and a variation of a y-axis coordinate.

Referring to <FIG>, a movement distance of touch coordinates over time is illustrated. The touch coordinates illustrated in <FIG> may include touch coordinates a1 to a5, which are sensed by the input panel <NUM> during a certain period (e.g., <NUM>), and touch coordinates b1 to b3 that are resampled by the processor <NUM> based on an update period of the display <NUM>. According to an embodiment of the present disclosure, the processor <NUM> may resample touch coordinates at a timing faster than each of update timings t1, t2 and t5 of the display <NUM> (e.g., a timing that is faster by <NUM> than each of the update timings t1, t2 and t5), based on a time at which a touch manipulation is processed. If the second touch coordinates for a2 are received from the input panel <NUM>, the processor <NUM> may determine a first resampling coordinates b1 by using extrapolation. If the third touch coordinates for a3 are received from the input panel <NUM>, the processor <NUM> may determine the second resampling coordinates for b2 by using extrapolation. If the fifth touch coordinates for a5 are received from the input panel <NUM>, the processor <NUM> may determine the third resampling coordinates b3 by using interpolation.

The processor <NUM> may determine whether a touch manipulation moves (e.g., determine whether a variation of touch coordinates is greater than a reference value) by using a variation of touch coordinates that are not resampled. In the case where the processor <NUM> determines whether a touch manipulation moves by using a variation of touch coordinates that are not resampled, the processor <NUM> may process a touch manipulation (e.g., determine whether a touch manipulation moves) by comparing a variation Δn between the third touch coordinates for a3 and the fourth touch coordinates for a4, which are not resampled at timing t3 at which the fourth touch coordinates for a4 are received from the input panel <NUM>, with a reference value (e.g., <NUM> DP). In the case where the processor <NUM> determines whether a touch manipulation moves by using a variation of touch coordinates that are resampled, the processor <NUM> may process a touch manipulation (e.g., determine whether a touch manipulation moves) by comparing a variation Δr between the second resampling coordinates for b2 and the third resampling coordinates for b3 with a reference value (e.g., <NUM> DP) at timing t4 at which resampling is performed after the fifth touch coordinates for a5 are received from the input panel <NUM>.

When the processor <NUM> determines whether a touch manipulation moves by using a variation of touch coordinates that are not resampled, the processor <NUM> may calculate a variation of actual touch coordinates, thereby increasing the accuracy of determining whether a touch manipulation moves. When the processor <NUM> determines whether a touch manipulation moves by using a variation of touch coordinates that are not resampled, the processor <NUM> may save a time, at which the touch manipulation is processed, by time Δt needed until resampling coordinates are calculated after touch coordinates are received.

<FIG> are plots of a movement distance of a touch manipulation over time.

Referring to <FIG>, a movement distance (y) of a touch drag manipulation of a user over time (x-axis) is illustrated. A touch drag manipulation of a user may correspond to a motion such as an accelerated motion, a uniform motion, or a decelerated motion.

Referring to <FIG>, which is a magnified view of the box that includes times <NUM> to <NUM> in <FIG>, since a variation Δd1 between second touch coordinates for b2 and third touch coordinates for b3 is less than a reference value (e.g., <NUM> DP), the processor <NUM> may process the third touch coordinates for b3 as being a stop input. Since variation Δd2 between the third touch coordinates for b3 and fourth touch coordinates for b4 is greater than the reference value, the processor <NUM> may process the fourth touch coordinates for b4 as being a movement input. Accordingly, after a time of <NUM> elapses after first touch coordinates for b1 are sensed, the processor <NUM> may determine that a touch manipulation is a touch movement. Accordingly, a speed at which a touch movement of a user is processed may be reduced. As described above, in the case where a speed at which the touch manipulation moves is reduced when a user ends a touch manipulation, some of the last touch movements may be processed as being a stop input.

An electronic device according to an embodiment of the present disclosure may variably set a reference value for determining whether a touch manipulation moves, thereby improving a reaction speed of a touch movement.

The processor <NUM> may change a reference value for determining whether a touch manipulation moves by using a variation of touch coordinates. The processor <NUM> may compare a variation of touch coordinates to a current reference value. If a variation of touch coordinates is less than a reference value, the processor <NUM> may change the reference value to the variation of the touch coordinates. For example, if a reference value that is currently stored in the memory <NUM> is <NUM> DP and a variation of touch coordinates is <NUM> DP, the processor <NUM> may change the reference value to <NUM> DP. If a unit of a reference value is DP, after the processor <NUM> changes from a unit of pixels to a unit of DP, the processor <NUM> may compare a variation of touch coordinates with the reference value. If a reference value is changed, the processor <NUM> may store the changed reference value in the memory <NUM>.

The processor <NUM> may compare each of a variation of an x-axis coordinate and a variation of a y-axis coordinate to a reference value. If at least one of a variation of an x-axis coordinate and a variation of a y-axis coordinate is less than a reference value, the processor <NUM> may change the reference value to one of the variation of the x-axis coordinate and the variation of the y-axis coordinate. For example, if a current reference value is <NUM> DP, a variation of an x-axis coordinate is <NUM> DP, and a variation of a y-axis coordinate is <NUM> DP, the processor <NUM> may change the reference value to <NUM> DP. If both a variation of an x-axis coordinate and a variation of a y-axis coordinate are less than a reference value, the processor <NUM> may change the reference value to one (e.g., a smallest value or a greatest value) of the variation of the x-axis coordinate and the variation of the y-axis coordinate. For example, if a current reference value is <NUM> DP, a variation of the x-axis coordinate is <NUM> DP, and a variation of the y-axis coordinate is <NUM> DP, the processor <NUM> may change the reference value to <NUM> DP.

The processor <NUM> may change a reference value in a certain range (or a change range of a reference value or pre-determined range). For example, in the case where a variation of touch coordinates is out of a certain range even though the variation of the touch coordinates is less than a current reference value, the processor <NUM> may not change the reference value. For example, if a certain range is set to <NUM> to <NUM> DP, a current reference value is <NUM> DP, a variation of an x-axis coordinate is <NUM> DP, a variation of a y-axis coordinate is <NUM> DP, where the variation of the touch coordinates is out of the certain range, and where the variation of the x-axis coordinate is less than the reference value, the processor <NUM> may maintain the reference value at <NUM> DP. As another example, if the certain range is set to <NUM> to <NUM> DP, a current reference value is <NUM> DP, a variation of an x-axis coordinate is <NUM> DP, and a variation of the y-axis coordinate is <NUM> DP, where the variation of the touch coordinates is out of the certain range, and where the variation of the x-axis coordinate and the variation of the y-axis coordinate are less than the reference value, the processor <NUM> may maintain the reference value at <NUM> DP.

<FIG> is a plot of a change range of a reference value, according to an embodiment of the present disclosure.

Referring to <FIG>, the change range of a reference value may be set based on pixel density or pixel size (e.g., a width or a height) of the display <NUM>. A maximum value and a minimum value of a change range of a reference value may be set such that the maximum value and the minimum value are inversely proportional to pixel density of the display <NUM> (or the maximum value and the minimum value are proportional to pixel size of the display <NUM>). For example, as pixel density of the display <NUM> increases (e.g., as the resolution of the display <NUM> increases or the display size decreases), a maximum value and a minimum value of a change range of a reference value may be set such that the maximum value and the minimum value decrease. As pixel density of the display <NUM> decreases (e.g., as the resolution of the display <NUM> decreases or the display size increases), a maximum value and a minimum value of a change range of a reference value may be set such that the maximum value and the minimum value increase. For example, in the case where pixel density of the display <NUM> is <NUM> pixels per inch (ppi), a minimum value and a maximum value of a change range of a reference value may be set to <NUM> DP and <NUM> DP, respectively. In the case where a pixel density is <NUM> ppi, a minimum value and a maximum value of a change range of a reference value may be set to <NUM> DP and <NUM> DP, respectively.

A difference between a maximum value and a minimum value of a change range of a reference value may be set such that the difference is inversely proportional to pixel density of the display <NUM> (or the difference is proportional to pixel size of the display <NUM>). For example, as pixel density of the display <NUM> increases, a difference between a maximum value and a minimum value of a change range of a reference value may be set such that the difference decreases. As pixel density of the display <NUM> decreases, a difference between a maximum value and a minimum value of a change range of a reference value may be set such that the difference increases. For example, in the case where pixel density of the display <NUM> is <NUM> ppi, a difference between a maximum value and a minimum value of a change range of a reference value may be set to <NUM> DP. In the case where pixel density is <NUM> ppi, a difference between a maximum value and a minimum value of a change range of a reference value may be set to <NUM> DP.

The change range of a reference value may be a preset value if the electronic device <NUM> is manufactured.

The processor <NUM> may change a reference value based on a touch event. If the processor <NUM> determines that a touch move event occurred, the processor <NUM> may count a number of occurrences of the touch move event. If the number of occurrences of the touch move event is greater than or equal to a certain number of times (e.g., a pre-determined number of times), the processor <NUM> may change a reference value. For example, if the number of occurrences of a touch move event is <NUM> or more, the processor <NUM> may compare a variation of touch coordinates to a reference value. If a variation of a touch coordinates is less than a reference value, the processor <NUM> may change the reference value to the variation of the touch coordinates.

If a touch down event or a touch up event occurs, the processor <NUM> may initialize a number of times that a touch move event is received. If a reference value is changed, the processor <NUM> may initialize a number of times that the touch move event is received.

The processor <NUM> may perform a function corresponding to a touch manipulation based on a result of determining whether the touch manipulation moves. For example, the processor <NUM> may perform a function corresponding to a touch manipulation based on at least one of touch coordinates and a variation of touch coordinates and based on a result of determining whether the touch manipulation moves. For example, the processor <NUM> may display a user interface corresponding to a touch manipulation on the display <NUM> in synchronization with an update timing of the display <NUM>. If the processor <NUM> determines that a touch manipulation moved (or determines that the touch manipulation is a movement input), the processor <NUM> may perform a function corresponding to the movement of the touch manipulation. For example, if the processor <NUM> determines that a touch manipulation moved, the processor <NUM> may move an icon displayed on the display <NUM> such that the icon corresponds to the movement of the touch manipulation.

The processor <NUM> may accumulate a touch manipulation and process the accumulated touch manipulation. For example, the processor <NUM> may accumulate a movement distance of a touch manipulation, which is determined as a movement input, or a number of movements of the touch manipulation; if the processor <NUM> determines that the accumulated movement distance of the touch manipulation is greater than or equal to a certain distance or determines that the accumulated number of movements of the touch manipulation is greater than or equal to a certain number of times, the processor <NUM> may perform a function corresponding to the movement of the touch manipulation. If the processor <NUM> determines that a touch manipulation stopped (or determines that the touch manipulation is a stop input), the processor <NUM> may disregard the touch manipulation or may perform a function corresponding to the stop of the touch manipulation.

The processor <NUM> may perform a function corresponding to a touch manipulation based on variations of resampled touch coordinates and touch coordinates that are not resampled. For example, the processor <NUM> may determine that a touch manipulation of a user moved to resampled touch coordinates by a variation of touch coordinates that are not resampled.

To improve a reaction speed of a touch manipulation, a sensing period of an input panel <NUM> may be set to be less than an update period of the display <NUM>. Even though a sensing period of an input panel <NUM> is set to be the same as an update period of the display <NUM>, the processor <NUM> may accurately and rapidly process a touch manipulation. Accordingly, power consumed to drive the input panel <NUM> may be reduced.

An electronic device may include an input panel configured to periodically sense touch coordinates corresponding to a touch manipulation of a user and a processor configured to periodically receive the touch coordinates from the input panel to calculate a variation of the touch coordinates based on the touch coordinates, change a reference value for determining movement of the touch manipulation based on the variation of the touch coordinates, and determine whether the touch manipulation moves, based on the reference value.

A reference value into a variation of touch coordinates if a variation of the touch coordinates is less than the reference value.

A processor may change a reference value in a certain range.

A certain range may be proportional to a pixel density.

A processor may determine a touch event corresponding to touch coordinates, count a number of times that a touch move event in the touch event is received and change a reference value if the number of times that the touch move event is received is greater than or equal to a certain number of times.

A processor may initialize a number of times that a touch move event is received, if a touch down event or a touch up event is received from an input panel or if a reference value is changed.

A processor may determine that a touch manipulation moved, if a variation of touch coordinates is greater than or equal to a reference value, and determine that the touch manipulation stopped, if the variation of the touch coordinates is less than the reference value.

Touch coordinates may comprise an x-axis coordinate and a y-axis coordinate corresponding to a touch manipulation, and a processor may calculate a variation of each of the x-axis coordinate and the y-axis coordinate and determine that the touch manipulation moved, if at least one of the variation of the x-axis coordinate and the variation of the y-axis coordinate is greater than or equal to a reference value.

An electronic device may include a display, an input panel configured to periodically sense touch coordinates corresponding to a touch manipulation of a user and a processor configured to periodically receive the touch coordinates from the input panel, calculate a variation of the touch coordinates based on the touch coordinates, determine resampling coordinates of the touch coordinates based on an update period of the display, determine whether the touch manipulation moves, based on the variation of the touch coordinates, and perform a function corresponding to the determination result based on the resampling coordinates.

A processor determines that a touch manipulation moved, if a variation of touch coordinates is greater than or equal to a certain reference value and determine that the touch manipulation stopped, if the variation of the touch coordinates is less than the reference value.

A processor changes a certain reference value by using a variation of touch coordinates.

Touch coordinates may comprise an x-axis coordinate and a y-axis coordinate corresponding to a touch manipulation, and a processor may calculate a variation of each of the x-axis coordinate and the y-axis coordinate and determine that the touch manipulation moved, if at least one of a variation of the x-axis coordinate and a variation of the y-axis coordinate is greater than or equal to a reference value.

Touch coordinates may comprise an x-axis coordinate and a y-axis coordinate corresponding to a touch manipulation, and a processor may calculate a variation of each of the x-axis coordinate and the y-axis coordinate and determine resampling coordinates based on each of the x-axis coordinate and the y-axis coordinate.

The electronic device may include an input panel and a processor. The processor may receive an input through the input panel, may obtain first coordinates and second coordinates on the input panel corresponding to the input, and may change a reference value for determining whether a touch manipulation moves, if a variation satisfies a certain condition based at least on a variation between the first coordinates and the second coordinates.

The electronic device includes an input panel and a processor. The processor receives an input through the input panel, obtain first coordinates and second coordinates on the input panel corresponding to an input, determine interpolated coordinates (e.g. resampled coordinates) corresponding to the first coordinates based on an update period of the display, determine an input event corresponding to the input based at least on a variation between the first coordinates and the second coordinates, and perform a function corresponding to an input event based at least on interpolated coordinates (e.g. resampled coordinates).

<FIG> is a flow diagram of a touch processing method of an electronic device, according to an embodiment of the present disclosure.

The flow diagram in <FIG> may illustrate a touch processing process by the electronic device <NUM> illustrated in <FIG>. Details about the electronic device <NUM> may be applied to the flow diagram shown in <FIG> with reference to <FIG> described above.

Referring to <FIG>, the electronic device <NUM> may include a touch controller <NUM>, which is performed by the panel control module <NUM>, and a touch driver <NUM>, an input manager <NUM>, and an application <NUM> that are performed by the processor <NUM>. The input manager <NUM> may correspond to, for example, a middleware <NUM> of <FIG> described below. The input manager <NUM> may process data associated with a user input and may send the processed data to the application <NUM>.

In operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) may execute the application <NUM>.

In operation <NUM>, if the application <NUM> is executed, the electronic device <NUM> (e.g., the input manager <NUM>) may send a reference value to the application <NUM>. If the application <NUM> is executed for the first time or if the reference value is changed, the electronic device <NUM> may send the reference value to the application <NUM>.

In operation <NUM>, the electronic device <NUM> (e.g., the touch controller <NUM>) may sense touch coordinates. The touch controller <NUM> may sense x-axis and y-axis touch coordinates corresponding to a touch manipulation of a user.

In operation <NUM>, the electronic device <NUM> (e.g., the touch controller <NUM>) may send the touch coordinates to the touch driver <NUM>.

In operation <NUM>, the electronic device <NUM> (e.g., the touch driver <NUM>) may determine a touch event corresponding to the touch coordinates. The touch event may include, for example, a touch down event (or a touch start event), a touch move event, and a touch up event (or a touch end event).

In operation <NUM>, the electronic device <NUM> (e.g., the touch driver <NUM>) may send the touch coordinates and the touch event to the input manager <NUM>.

In operation <NUM>, the electronic device <NUM> (e.g., the input manager <NUM>) may resample the touch coordinates received from the touch driver <NUM>. The input manager <NUM> may resample the touch coordinates based on an update period of the display <NUM>.

In operation <NUM>, the electronic device <NUM> (e.g., the input manager <NUM>) may calculate a variation of the touch coordinates. The input manager <NUM> may calculate the variation of the touch coordinates by using the touch coordinates (i.e., touch coordinates that are not resampled) that are received from the touch driver <NUM>. The input manager <NUM> may calculate the variation of each of an x-axis coordinate and a y-axis coordinate.

In operation <NUM>, the electronic device <NUM> (e.g., the input manager <NUM>) may change a reference value for determining whether a touch manipulation moves. The input manager <NUM> may compare a variation of touch coordinates to a currently set reference value and may change the reference value to the variation of the touch coordinates if the variation of the touch coordinates is less than the reference value. The input manager <NUM> may compare each variation of the x-axis coordinate and the y-axis coordinate to the reference value; if at least one variation of the x-axis coordinate and the y-axis coordinate is less than the reference value, the processor <NUM> may change the reference value to a variation of the x-axis coordinate or the y-axis coordinate. The input manager <NUM> may change the reference value in a certain range (e.g. a change range of the reference value). If a number of occurrences of a touch move event received from the touch driver <NUM> is greater than or equal to the certain number of times, the input manager <NUM> may change the reference value. The change range of the reference value may be set based on a pixel density or a pixel size (e.g., a width or a height) of the display <NUM>.

If the reference value is changed, in operation <NUM>, the electronic device <NUM> (e.g., the input manager <NUM>) may send the changed reference value to the application <NUM>. The input manager <NUM> may store the changed reference value in an area of the memory <NUM>. The application <NUM> may receive the changed reference value from the input manager <NUM> in a manner of referring to the reference value stored in the memory <NUM>. In operation <NUM>, if the reference value is not changed (e.g., if the variation of the touch coordinates is greater than or equal to the reference value), operation <NUM> may be omitted.

In operation <NUM>, the electronic device <NUM> (e.g., the input manager <NUM>) may send a resampling coordinate, a variation of the touch coordinates, and the touch event to the application <NUM>.

In operation <NUM>, the electronic device <NUM> (e.g., the application <NUM>) may determine whether the touch manipulation moves, by using the reference value received from the input manager <NUM>. If the variation of the touch coordinates is greater than or equal to the reference value, the application <NUM> may determine that the touch manipulation moved. If the variation of the touch coordinates is less than the reference value, the application <NUM> may determine that the touch manipulation stopped (or that the touch manipulation does not move). The application <NUM> may determine whether the touch manipulation moves, based on each of a variation of an x-axis coordinate and a variation of a y-axis coordinate.

In operation <NUM>, the electronic device <NUM> (e.g., the application <NUM>) may perform a function corresponding to the touch manipulation based on the determination result. The application <NUM> may perform a function corresponding to the touch manipulation based on at least one of the touch coordinates and a variation of the touch coordinates. The application <NUM> may accumulate a touch manipulation and may process the accumulated touch manipulation. For example, the application <NUM> may accumulate a movement distance of a touch manipulation, which is determined as the movement input, or a number of movements of a touch manipulation; if the application <NUM> determines that an accumulated movement distance of a touch manipulation is greater than or equal to a certain distance or determines that an accumulated number of movements of a touch manipulation is greater than or equal to a certain number of times, the application <NUM> may perform a function corresponding to a movement of a touch manipulation.

A touch event is described above with reference to <FIG> as being determined by the touch driver <NUM>. However, according to an embodiment of the present disclosure, a touch event may be determined by the input manager <NUM>.

<FIG> is a flowchart of a touch processing method of an electronic device, according to an example of the present disclosure.

The flowchart illustrated in <FIG> may include operations processed by the electronic device <NUM> illustrated in <FIG>. Details about the electronic device <NUM> may be applied to the flowchart shown in <FIG> with reference to <FIG> described above.

Referring to <FIG>, in operation <NUM>, the electronic device <NUM> (e.g., the input panel <NUM>) may sense touch coordinates corresponding to a touch manipulation (or a pen manipulation) of a user. The electronic device <NUM> may periodically sense touch coordinates corresponding to a touch manipulation of a user through the input panel <NUM>. The electronic device <NUM> may sense x-axis and y-axis touch coordinates corresponding to a touch manipulation of a user.

The electronic device <NUM> (e.g., the processor <NUM>) may determine a touch event corresponding to touch coordinates. A touch event may include, for example, a touch down event (or a touch start event), a touch move event, and a touch up event (or a touch end event).

In operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) may calculate a variation of touch coordinates (or a difference value) by using touch coordinates. The electronic device <NUM> may calculate a variation between two successive touch coordinates. The electronic device <NUM> may calculate a variation of each of an x-axis coordinate and a y-axis coordinate.

In operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) may change a reference value for determining whether a touch manipulation moves. The electronic device <NUM> may compare a variation of touch coordinates to a currently set reference value and may change the reference value to a variation of the touch coordinates if the variation of the touch coordinates is less than the reference value. The electronic device <NUM> may compare each of a variation of an x-axis coordinate and a variation of a y-axis coordinate to a reference value. If at least one of a variation of an x-axis coordinate and a variation of a y-axis coordinate is less than a reference value, the electronic device <NUM> may change the reference value to one of the variation of the x-axis coordinate and the variation of the y-axis coordinate. The electronic device <NUM> may change a reference value in a certain range (or a change range of the reference value). If a number of occurrences of a touch move event received from the touch driver <NUM> is greater than or equal to a certain number of times, the electronic device <NUM> may change the reference value. The change range of a reference value may be set based on pixel density or pixel size (e.g., a width or a height) of the display <NUM>.

In operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) may determine whether a touch manipulation moves, by using a reference value. For example, in operation <NUM>, if a reference value is changed, the electronic device <NUM> may determine whether a touch manipulation moves, based on the changed reference value. If a variation of touch coordinates is greater than or equal to a reference value, the electronic device <NUM> may determine that a touch manipulation moved. If a variation of touch coordinates is less than a reference value, the electronic device <NUM> may determine that a touch manipulation stopped (or that the touch manipulation does not move). The electronic device <NUM> may determine whether a touch manipulation moves, based on each of a variation of an x-axis coordinate and a variation of a y-axis coordinate.

In operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) may perform a function corresponding to a touch manipulation based on a determination result. The electronic device <NUM> may perform a function corresponding to a touch manipulation based on at least one of touch coordinates and a variation of the touch coordinates. The electronic device <NUM> may accumulate a touch manipulation and may process the accumulated touch manipulation. For example, the electronic device <NUM> may accumulate a movement distance of a touch manipulation, which is determined as a movement input, or a number of movements of the touch manipulation; if the electronic device <NUM> determines that an accumulated movement distance of a touch manipulation is greater than or equal to a certain distance or determines that an accumulated number of movements of a touch manipulation is greater than or equal to a certain number of times, the electronic device <NUM> may perform a function corresponding to the movement of the touch manipulation.

<FIG> is a flowchart of a reference value changing method of an electronic device, according to an embodiment of the present disclosure.

The flowchart illustrated in <FIG> includes operations which the electronic device <NUM> illustrated in <FIG> processes. Details about the electronic device <NUM> may be applied to the flowchart shown in <FIG> with reference to <FIG> described above.

Referring to <FIG>, in operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) determines whether a touch move event occurred. For example, the electronic device <NUM> determines whether a touch move event occurred, based on touch coordinates that are sent from the input panel <NUM> to the processor <NUM>.

If the electronic device <NUM> (e.g., the processor <NUM>) determines that a touch move event occurs, in operation <NUM>, the electronic device <NUM> counts a number of occurrences (or a count) of the touch move event. If a touch move event does not occur (e.g., if a touch down event or a touch up event occurs), the electronic device <NUM> may end the process of changing a reference value.

In operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) determines whether a number of occurrences (or a count) of a touch move event is greater than or equal to a certain value.

If a number of occurrences of a touch move event is greater than or equal to a certain value, in operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) determines whether a variation of touch coordinates is less than a reference value. If a number of occurrences of a touch move event is greater than or equal to a certain value, the electronic device <NUM> may end the process of changing the reference value.

If a variation of touch coordinates is less than a reference value, the electronic device <NUM> (e.g., the processor <NUM>) determines whether the variation of the touch coordinates is in a certain range (or a change range of the reference value). A change range of a reference value may be set based on a pixel density or a pixel size (e.g., a width or a height) of a display. A maximum value and a minimum value of a change range of a reference value may be set to be inversely proportional to a pixel density (or proportional to a pixel size). A difference between a maximum value and a minimum value of a change range of a reference value may be set to be inversely proportional to a pixel density (or proportional to pixel size). A preset value upon manufacturing the electronic device <NUM> may be set as a change range of a reference value. If a variation of touch coordinates is greater than a reference value, the electronic device <NUM> may end the process of changing the reference value.

If a variation of touch coordinates is in a certain range, in operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) changes a reference value to the variation of the touch coordinates.

Alternatively, operations <NUM> and <NUM> may be omitted. For example, when a running application (e.g., an application that performs a function corresponding to a touch manipulation) accumulates a number of movements of a touch manipulation and processes the accumulated number of movements of the touch manipulation, operations <NUM> and <NUM> may be performed. However, in the case where a running application processes a touch manipulation regardless of a number of movements of a touch manipulation, operations <NUM> and <NUM> may be omitted.

<FIG> is a flowchart of a reference value changing method of an electronic device, according to an example of the present disclosure.

The flowchart illustrated in <FIG> may include operations which the electronic device <NUM> illustrated in <FIG> processes. Details about the electronic device <NUM> may be applied to the flowchart shown in <FIG> with reference to <FIG> described above.

In operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) may calculate a variation of touch coordinates (or a difference value) by using the touch coordinates. According to an embodiment of the present disclosure, the electronic device <NUM> may calculate a variation between two successive touch coordinates. The electronic device <NUM> may calculate a variation of each of an x-axis coordinate and a y-axis coordinate.

In operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) may resample touch coordinates. According to an embodiment of the present disclosure, the electronic device <NUM> may resample touch coordinates based on an update period of a display.

In operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) may determine whether a touch manipulation moves, based on a variation of touch coordinates. According to an embodiment of the present disclosure, the electronic device <NUM> may determine whether a touch manipulation moves, by using a variation of touch coordinates that are not resampled. If a variation of touch coordinates is greater than or equal to a reference value, the electronic device <NUM> may determine that a touch manipulation moved. If a variation of touch coordinates is less than a reference value, the electronic device <NUM> may determine that a touch manipulation stopped (or that the touch manipulation does not move). The electronic device <NUM> may determine whether a touch manipulation moves, based on each of a variation of an x-axis coordinate and a variation of a y-axis coordinate.

In operation <NUM>, the electronic device <NUM> (e.g., the processor <NUM>) may perform a function corresponding to a touch manipulation based on at least one of resampled touch coordinates and a variation of touch coordinates. The electronic device <NUM> may perform a function corresponding to a touch manipulation based on a result of determining whether a touch manipulation moves. The electronic device <NUM> may accumulate a touch manipulation and may process the accumulated touch manipulation. For example, the electronic device <NUM> may accumulate a movement distance of a touch manipulation, which is determined as a movement input, or a number of movements of the touch manipulation; if the electronic device <NUM> determines that an accumulated movement distance of a touch manipulation is greater than or equal to a certain distance or determines that an accumulated number of movements of a touch manipulation is greater than or equal to a certain number of times, the electronic device <NUM> may perform a function corresponding to the movement of the touch manipulation.

An input processing method of an electronic device may include periodically sensing touch coordinates corresponding to a touch manipulation of a user, calculating a variation of the touch coordinates based on the touch coordinates, changing a reference value for determining movement of the touch manipulation by using the variation of the touch coordinates and determining whether the touch manipulation moves, based on the reference value.

Changing a reference value may include changing the reference value to a variation of touch coordinates if the variation of the touch coordinates is less than the reference value.

Changing a reference value may include changing the reference value in a certain range.

A touch event corresponding to touch coordinates may be determined, and changing a reference value may include counting a number of occurrences of a touch move event in the touch event and changing the reference value if the number of occurrences of the touch move event is greater than or equal to a certain number of times.

Changing a reference value may further include initializing a number of occurrences of a touch move event if a touch down event or a touch up event is received from an input panel or if the reference value is changed.

Determining whether a touch manipulation moves may include determining that the touch manipulation moved if a variation of touch coordinates is greater than or equal to a reference value, and determining that the touch manipulation stopped if the variation of the touch coordinates is less than the reference value.

Touch coordinates may include an x-axis coordinate and a y-axis coordinate corresponding to the touch manipulation, and determining whether the touch manipulation moves may include calculating a variation of each of the x-axis coordinate and the y-axis coordinate and determining that the touch manipulation moved if at least one of the variation of the x-axis coordinate and the variation of the y-axis coordinate is greater than or equal to a reference value.

An input processing method of an electronic device may include periodically sensing touch coordinates corresponding to a touch manipulation of a user, calculating a variation of the touch coordinates based on the touch coordinates, determining resampling coordinates of the touch coordinates based on an update period of a display, determining whether the touch manipulation moves, based on the variation of the touch coordinates and performing a function corresponding to the determined result based on the resampling coordinates.

Touch coordinates may include an x-axis coordinate and a y-axis coordinate corresponding to the touch manipulation. The determining of whether the touch manipulation moves may include calculating the variation of each of the x-axis coordinate and the y-axis coordinate and resampling each of the x-axis coordinate and the y-axis coordinate.

An input processing method of an electronic device that includes an input panel and a processor may include receiving an input through the input panel, obtaining first coordinates and second coordinates on the input panel corresponding to the input, and changing a reference value for determining whether the touch manipulation moves, if a variation satisfies a certain condition based at least on a variation between the first coordinates and the second coordinates.

An input processing method of an electronic device that includes an input panel and a processor may include receiving an input through the input panel, obtaining first coordinates and second coordinates on the input panel corresponding to the input, determining interpolated coordinates (resampled coordinates) corresponding to the first coordinates based on an update period of a display, determining an input event corresponding to the input by using the processor based at least on a variation between the first coordinates and the second coordinates, and performing a function corresponding to the input event based at least on the interpolated coordinates (the resampled coordinates).

<FIG> is a block diagram of an electronic device <NUM> in a network environment <NUM> according to an embodiment of the present disclosure.

Referring to <FIG>, the electronic device <NUM> may include a bus <NUM>, a processor <NUM>, a memory <NUM>, an input/output interface <NUM>, a display <NUM>, and a communication interface <NUM>. According to an embodiment of the present disclosure, at least one of the foregoing elements may be omitted or another element may be added to the electronic device <NUM>.

The bus <NUM> may include a circuit for connecting the above-mentioned elements <NUM> to <NUM> to each other and transferring communications (e.g., control messages and/or data) among the above-mentioned elements <NUM> to <NUM>.

The processor <NUM> may include at least one of a central processing unit (CPU), an application processor (AP), and a communication processor (CP). The processor <NUM> may perform data processing or an operation related to communication and/or control of at least one of the other elements <NUM> to <NUM> of the electronic device <NUM>.

The memory <NUM> may include a volatile memory and/or a nonvolatile memory. The memory <NUM> may store instructions or data related to at least one of the other elements <NUM> and <NUM>-<NUM> of the electronic device <NUM>. According to an embodiment of the present disclosure, the memory <NUM> may store software and/or a program <NUM>. The program <NUM> may include, for example, a kernel <NUM>, a middleware <NUM>, an application programming interface (API) <NUM>, and/or an application program (or an application) <NUM>. At least a portion of the kernel <NUM>, the middleware <NUM>, or the API <NUM> may be referred to as an operating system (OS).

The kernel <NUM> may control or manage system resources (e.g., the bus <NUM>, the processor <NUM>, the memory <NUM>, or the like) used to perform operations or functions of other programs (e.g., the middleware <NUM>, the API <NUM>, or the application program <NUM>). Further, the kernel <NUM> may provide an interface for allowing the middleware <NUM>, the API <NUM>, or the application program <NUM> to access individual elements of the electronic device <NUM> in order to control or manage the system resources.

The middleware <NUM> may serve as an intermediary so that the API <NUM> or the application program <NUM> communicates and exchanges data with the kernel <NUM>.

Further, the middleware <NUM> may handle one or more task requests received from the application program <NUM> according to a priority order. For example, the middleware <NUM> may assign at least one application program <NUM> a priority for using the system resources (e.g., the bus <NUM>, the processor <NUM>, the memory <NUM>, or the like) of the electronic device <NUM>. For example, the middleware <NUM> may handle the one or more task requests according to the priority assigned to the at least one application program <NUM>, thereby performing scheduling or load balancing with respect to the one or more task requests.

The API <NUM>, which is an interface for allowing the application <NUM> to control a function provided by the kernel <NUM> or the middleware <NUM>, may include, for example, at least one interface or function (e.g., instructions) for file control, window control, image processing, character control, or the like.

The input/output interface <NUM> may serve to transfer an instruction or data input from a user or another external device to (an)other element(s) of the electronic device <NUM>. Furthermore, the input/output interface <NUM> may output instructions or data received from (an)other element(s) of the electronic device <NUM> to the user or another external device.

The display <NUM> may include, for example, a liquid crystal display (LCD), a light-emitting diode (LED) display, an organic light-emitting diode (OLED) display, a microelectromechanical systems (MEMS) display, or an electronic paper display. The display <NUM> may present various content (e.g., a text, an image, a video, an icon, a symbol, or the like) to a user. The display <NUM> may include a touch screen, and may receive a touch, a gesture, a proximity or hovering input from an electronic pen or a part of a user's body.

The communication interface <NUM> may establish communication between the electronic device <NUM> and the first external electronic device <NUM>, the second external electronic device <NUM>, or a server <NUM>. For example, the communication interface <NUM> may be connected to a network <NUM> via wireless communications or wired communications so as to communicate with the second external electronic device <NUM> or the server <NUM>.

The wireless communications may employ at least one of cellular communication protocols such as long-term evolution (LTE), LTE-advanced (LTE-A), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), wireless broadband (WiBro), and global system for mobile communications (GSM). The wireless communications may include, for example, a short-range communications <NUM>. The short-range communications may include at least one of wireless fidelity (Wi-Fi), Bluetooth, Bluetooth low energy (BLE), Zigbee, near field communication (NFC), magnetic secure transmission (MST), and global navigation satellite system (GNSS). GNSS may include, for example, at least one of a global positioning system (GPS), another global navigation satellite system (GLONASS), BeiDou navigation satellite system (BeiDou), and Galileo, the European global satellite-based navigation system according to a use area or a bandwidth. Hereinafter, the terms "GPS" and "GNSS" may be used interchangeably.

Wired communications may include at least one of a universal serial bus (USB), a high definition multimedia interface (HDMI), a recommended standard <NUM> (RS-<NUM>), a plain old telephone service (POTS), and the like. The network <NUM> may include at least one telecommunications network, for example, a computer network (e.g., a local area network (LAN) or a wide area network (WAN)), the Internet, and/or a telephone network.

The types of the first external electronic device <NUM> and the second external electronic device <NUM> may be the same as or different from the type of the electronic device <NUM>. The server <NUM> may include one or more servers. A portion or all of the operations performed in the electronic device <NUM> may be performed in one or more other electronic devices (e.g., the first electronic device <NUM>, the second external electronic device <NUM>, or the server <NUM>). If the electronic device <NUM> performs a certain function or service automatically or in response to a request, the electronic device <NUM> may request at least a portion of the functions related to the certain function or service to be performed from another device (e.g., the first electronic device <NUM>, the second external electronic device <NUM>, or the server <NUM>) instead of or in addition to the electronic device <NUM> performing the function or service. The other electronic device (e.g., the first electronic device <NUM>, the second external electronic device <NUM>, or the server <NUM>) may perform the requested function or additional function, and may transfer a result of performing the requested function or additional function to the electronic device <NUM>. The electronic device <NUM> may use a received result as is or additionally process the received result to provide the requested function or service. To this end, for example, cloud computing, distributed computing, or client-server computing may be used.

<FIG> is a block diagram of an electronic device <NUM> according to an embodiment of the present disclosure.

Referring to <FIG>, the electronic device <NUM> may include, for example, a part or the entirety of the electronic device <NUM> illustrated in <FIG>. The electronic device <NUM> may include at least one processor (e.g., an AP) <NUM>, a communication module <NUM>, a subscriber identification module (SIM) <NUM>, a memory <NUM>, a sensor module <NUM>, an input device <NUM>, a display <NUM>, an interface <NUM>, an audio module <NUM>, a camera module <NUM>, a power management module <NUM>, a battery <NUM>, an indicator <NUM>, and a motor <NUM>.

The processor <NUM> may run an operating system or an application program so as to control a plurality of hardware or software elements connected to the processor <NUM>, process various data, and perform operations. The processor <NUM> may be implemented with, for example, a system on chip (SoC). According to an embodiment of the present disclosure, the processor <NUM> may further include a GPU and/or an image signal processor. The processor <NUM> may include at least a portion of the elements (e.g., a cellular module <NUM>) illustrated in <FIG>. The processor <NUM> may load, on a volatile memory, an instruction or data received from at least one of the other elements (e.g., a nonvolatile memory) to process the instruction or data, and may store various data in a nonvolatile memory.

The communication module <NUM> may be configured the same as or similar to the communication interface <NUM> of <FIG>. The communication module <NUM> may include, for example, the cellular module <NUM> (e.g., the modem <NUM>), a Wi-Fi module <NUM>, a Bluetooth (BT) module <NUM>, a GNSS module <NUM> (e.g., a GPS module, a GLONASS module, a BeiDou module, or a Galileo module), an NFC module <NUM>, a MST module <NUM> and a radio frequency (RF) module <NUM>.

The cellular module <NUM> may provide, for example, a voice call service, a video call service, a text message service, or an Internet service through a communication network. The cellular module <NUM> may identify and authenticate the electronic device <NUM> in the communication network using the subscriber identification module <NUM> (e.g., a SIM card). The cellular module <NUM> may perform at least a part of the functions that may be provided by the processor <NUM>. The cellular module <NUM> may include a CP.

Each of the Wi-Fi module <NUM>, the Bluetooth module <NUM>, the GNSS module <NUM>, the NFC module <NUM> and the MST module <NUM> may include, for example, a processor for processing data transmitted/received through the modules. According to an embodiment of the present disclosure, at least a part (e.g., two or more) of the cellular module <NUM>, the Wi-Fi module <NUM>, the Bluetooth module <NUM>, the GNSS module <NUM>, the NFC module <NUM> and the MST module <NUM> may be included in a single integrated circuit (IC) or IC package.

The RF module <NUM> may transmit/receive, for example, communication signals (e.g., RF signals). The RF module <NUM> may include, for example, a transceiver, a power amplifier module (PAM), a frequency filter, a low noise amplifier (LNA), an antenna, or the like. According to an embodiment of the present disclosure, at least one of the cellular module <NUM>, the Wi-Fi module <NUM>, the Bluetooth module <NUM>, the GNSS module <NUM>, the NFC module <NUM> and the MST module <NUM> may transmit/receive RF signals through a separate RF module.

The SIM <NUM> may include, for example, an embedded SIM and/or a card, and may include unique identification information (e.g., an integrated circuit card identifier (ICCID)) or subscriber information (e.g., international mobile subscriber identity (IMSI)).

The memory <NUM> (e.g., the memory <NUM>) may include, for example, an internal memory <NUM> or an external memory <NUM>. The internal memory <NUM> may include at least one of a volatile memory (e.g., a dynamic random access memory (DRAM), a static RAM (SRAM), a synchronous dynamic RAM (SDRAM), or the like), a nonvolatile memory (e.g., a one-time programmable read only memory (OTPROM), a programmable ROM (PROM), an erasable and programmable ROM (EPROM), an electrically erasable and programmable ROM (EEPROM), a mask ROM, a flash ROM, a flash memory (e.g., a NAND flash memory, a NOR flash memory, or the like)), a hard drive, and a solid state drive (SSD).

The external memory <NUM> may include a flash drive such as a compact flash (CF) drive, a secure digital (SD) memory card, a micro-SD, a mini-SD memory card, an extreme digital (xD) memory card, a multimedia card (MMC), a memory stick, or the like. The external memory <NUM> may be operatively and/or physically connected to the electronic device <NUM> through various interfaces.

A security module <NUM>, which is a module including a storage space that has a higher security level than the memory <NUM>, may be a circuit for providing secure data storage and a protected execution environment. The security module <NUM> may be implemented with an additional circuit and may include an additional processor. The security module <NUM> may be present in an attachable smart IC or SD memory card, or may include an embedded secure element (eSE), which is installed in a fixed IC. Additionally, the security module <NUM> may be driven in another OS which is different from the OS of the electronic device <NUM>. For example, the security module <NUM> may operate based on a java card open platform (JCOP) OS.

The sensor module <NUM> may, for example, measure a physical quantity or detect an operation state of the electronic device <NUM> so as to convert measured or detected information into an electrical signal. The sensor module <NUM> may include, for example, at least one of a gesture sensor 1140A, a gyro sensor 1140B, a barometric pressure sensor 1140C, a magnetic sensor 1140D, an acceleration sensor 1140E, a grip sensor 1140F, a proximity sensor <NUM>, a color sensor <NUM> (e.g., a red/green/blue (RGB) sensor), a biometric sensor <NUM>, a temperature/humidity sensor 1140J, an illumination sensor <NUM>, and an ultraviolet (UV) light sensor <NUM>. Additionally or alternatively, the sensor module <NUM> may include, for example, an olfactory sensor (e.g., an electronic nose (E-nose) sensor), an electromyography (EMG) sensor, an electroencephalogram (EEG) sensor, an electrocardiogram (ECG) sensor, an infrared (IR) sensor, an iris recognition sensor, and/or a fingerprint sensor. The sensor module <NUM> may further include a control circuit for controlling at least one sensor included therein. In an embodiment of the present disclosure, the electronic device <NUM> may further include a processor configured to control the sensor module <NUM> as a part of the processor <NUM> or separately, so that the sensor module <NUM> is controlled while the processor <NUM> is in a reduced power or sleep state.

The input device <NUM> may include, for example, a touch panel <NUM>, a (digital) pen sensor <NUM>, a key <NUM>, or an ultrasonic input device <NUM>. The touch panel <NUM> may employ at least one of a capacitive type, a resistive type, an infrared type, and an ultraviolet light type sensing method. The touch panel <NUM> may further include a control circuit. The touch panel <NUM> may further include a tactile layer so as to provide a haptic feedback to a user.

The (digital) pen sensor <NUM> may include, for example, a sheet for recognition which is either a part of a touch panel or is separate. The key <NUM> may include, for example, a physical button, an optical button, or a keypad. The ultrasonic input device <NUM> may sense ultrasonic waves generated by an input tool through a microphone <NUM> so as to identify data corresponding to the ultrasonic waves sensed.

The display <NUM> (e.g., the display <NUM>) may include a panel <NUM>, a hologram device <NUM>, and/or a projector <NUM>. The panel <NUM> may be configured the same as or similar to the display <NUM> of <FIG>. The panel <NUM> may be, for example, flexible, transparent, or wearable. The panel <NUM> and the touch panel <NUM> may be integrated into a single module. The hologram device <NUM> may display a stereoscopic image in a space using a light interference phenomenon. The projector <NUM> may project light onto a screen so as to display an image. The screen may be disposed in internally or externally to the electronic device <NUM>. According to an embodiment of the present disclosure, the display <NUM> may further include a control circuit for controlling the panel <NUM>, the hologram device <NUM>, and/or the projector <NUM>.

The interface <NUM> may include, for example, an HDMI <NUM>, a USB <NUM>, an optical interface <NUM>, and/or a D-subminiature (D-sub) connector <NUM>. The interface <NUM>, for example, may be included in the communication interface <NUM> illustrated in <FIG>. Additionally or alternatively, the interface <NUM> may include, for example, a mobile high-definition link (MHL) interface, an SD card/ MMC interface, or an interface according to an Infrared Data Association (IrDA) standard.

The audio module <NUM> may convert, for example, a sound into an electrical signal or vice versa. At least a portion of the elements of the audio module <NUM> may be included in the input/output interface <NUM> illustrated in <FIG>. The audio module <NUM> may process sound information input or output through a speaker <NUM>, a receiver <NUM>, an earphone <NUM>, or the microphone <NUM>.

The camera module <NUM> is, for example, a device for photographing a still image or recording a video. According to an embodiment of the present disclosure, the camera module <NUM> may include at least one image sensor (e.g., a front sensor or a rear sensor), a lens, an image signal processor (ISP), or a flash (e.g., an LED lamp or a xenon lamp).

The power management module <NUM> may manage power of the electronic device <NUM>. The power management module <NUM> may include a power management integrated circuit (PMIC), a charger IC, a battery, and/or a battery gauge. The PMIC may employ a wired and/or wireless charging method. The wireless charging method may include, for example, a magnetic resonance method, a magnetic induction method, an electromagnetic method, or the like. An additional circuit for wireless charging, such as a coil loop, a resonant circuit, a rectifier, or the like, may be further included. The battery gauge may measure, for example, a remaining capacity of the battery <NUM> and a voltage, current or temperature thereof while the battery <NUM> is charging. The battery <NUM> may include, for example, a rechargeable battery and/or a solar battery.

The indicator <NUM> may display a certain state of the electronic device <NUM> or a part thereof (e.g., the processor <NUM>), such as a booting state, a message state, a charging state, or the like. The motor <NUM> may convert an electrical signal into a mechanical vibration, and may generate a vibration or haptic effect. A processing device (e.g., a GPU) for supporting a mobile TV may be included in the electronic device <NUM>. The processing device for supporting a mobile TV may process media data according to the standards of digital multimedia broadcasting (DMB), digital video broadcasting (DVB), MediaFLO™, or the like.

<FIG> is a block diagram of a program module according to an embodiment of the present disclosure.

Referring to <FIG>, a program module <NUM> (e.g., the program <NUM>) may include an OS for controlling a resource related to an electronic device (e.g., the electronic device <NUM>) and/or various applications (e.g., the application program <NUM>) running on the OS. The OS may be, for example, Android®, iOS®, Windows®, Symbian®, Tizen®, or the like.

The program module <NUM> may include a kernel <NUM>, a middleware <NUM>, an API <NUM>, and/or an application <NUM>. At least a part of the program module <NUM> may be preloaded on an electronic device or may be downloaded from an external electronic device (e.g., the first electronic device <NUM>, the second external electronic device <NUM>, or the server <NUM>).

The kernel <NUM> (e.g., the kernel <NUM>) may include, for example, a system resource manager <NUM> or a device driver <NUM>. The system resource manager <NUM> may perform control, allocation, or retrieval of a system resource. According to an embodiment of the present disclosure, the system resource manager <NUM> may include a process management unit, a memory management unit, a file system management unit, or the like. The device driver <NUM> may include, for example, a display driver, a camera driver, a Bluetooth driver, a shared memory driver, a USB driver, a keypad driver, a Wi-Fi driver, an audio driver, or an inter-process communication (IPC) driver.

The middleware <NUM>, for example, may provide a function that the application <NUM> requires in common, or may provide various functions to the application <NUM> through the API <NUM> so that the application <NUM> may efficiently use limited system resources in the electronic device. The middleware <NUM> (e.g., the middleware <NUM>) may include at least one of a runtime library <NUM>, an application manager <NUM>, a window manager <NUM>, a multimedia manager <NUM>, a resource manager <NUM>, a power manager <NUM>, a database manager <NUM>, a package manager <NUM>, a connectivity manager <NUM>, a notification manager <NUM>, a location manager <NUM>, a graphic manager <NUM>, a security manager <NUM> and an input manager <NUM>.

The runtime library <NUM> may include, for example, a library module that a complier uses to add a new function through a programming language while the application <NUM> is running. The runtime library <NUM> may perform a function for input/output management, memory management, or an arithmetic function.

The application manager <NUM> may mange, for example, a life cycle of at least one of the application <NUM>. The window manager <NUM> may manage a graphical user interface (GUI) resource used in a screen. The multimedia manager <NUM> may recognize a format required for playing various media files and may encode or decode a media file using a codec matched to the format. The resource manager <NUM> may manage a resource such as source code, a memory, or a storage space of at least one of the applications in the application <NUM>.

The power manager <NUM>, for example, may operate together with a basic input/output system (BIOS) to manage a battery or power and may provide power information required for operating an electronic device. The database manager <NUM> may generate, search, or modify a database to be used in at least one of the applications of the application <NUM>. The package manager <NUM> may manage installation or update of an application distributed in a package file format.

The connectivity manger <NUM> may manage a wireless connection of Wi-Fi, Bluetooth, or the like. The notification manager <NUM> may display or notify an event such as message arrival, appointments, and proximity alerts in such a manner as not to disturb a user. The location manager <NUM> may manage location information of the electronic device. The graphic manager <NUM> may manage a graphic effect to be provided to a user or a user interface related thereto. The security manager <NUM> may provide various security functions required for system security or user authentication. The input manager <NUM> (e.g., the input manager <NUM>) may process data regarding a user input and transfer the data to an application. According to an embodiment of the present disclosure, in the case in which an electronic device (e.g., the electronic device <NUM>) includes a phone function, the middleware <NUM> may further include a telephony manager for managing a voice or video call function of the electronic device.

The middleware <NUM> may include a middleware module for forming a combination of various functions of the above-mentioned elements. The middleware <NUM> may provide a module specialized for each type of an operating system to provide differentiated functions. Furthermore, the middleware <NUM> may delete a part of existing elements or may add new elements dynamically.

The API <NUM> (e.g., the API <NUM>) which is, for example, a set of API programming functions may be provided in different configurations according to an operating system. For example, in the case of Android® or iOS®, one API set may be provided for each platform, and, in the case of Tizen®, at least two API sets may be provided for each platform.

The application <NUM> (e.g., the application program <NUM>), for example, may include at least one application capable of performing functions such as a home application <NUM>, a dialer application <NUM>, an SMS/MMS application <NUM>, an instant message application (IM) <NUM>, a browser application <NUM>, a camera application <NUM>, an alarm application <NUM>, a contact application <NUM>, a voice dial application <NUM>, an e-mail application <NUM>, a calendar application <NUM>, a media player application <NUM>, an album application <NUM>, a clock application <NUM>. The application <NUM> may also include a health care application (e.g., an application to measure an exercise amount or a blood sugar level), or an environmental information provision application (e.g., an application to provide air pressure, humidity, or temperature information).

The application <NUM> may include an information exchange application for supporting information exchange between the electronic device (e.g., the electronic device <NUM>) and the first electronic device <NUM> or the second external electronic device <NUM>. The information exchange application may include, for example, a notification relay application for relaying certain information to an external electronic device or a device management application for managing the external electronic device.

For example, the notification relay application may have a function for relaying, to the first electronic device <NUM> or the second external electronic device <NUM>, notification information generated in another application (e.g., the SMS/MMS application <NUM>, the e-mail application <NUM>, the health care application, the environmental information provision application, or the like) of an electronic device. Furthermore, the notification relay application may receive notification information from an external electronic device and may provide the received notification information to a user.

The device management application, for example, may manage (e.g., install, delete, or update) at least one function (e.g., turn-on/turn off of an external electronic device (or some elements) or the brightness (or resolution) adjustment of a display) of the first electronic device <NUM> or the second external electronic device <NUM> communicating with an electronic device, an application running in the external electronic device, or a service (e.g., a call service, a message service, or the like) provided from the external electronic device.

The application <NUM> may include a certain application (e.g., a healthcare application of a mobile medical device) according to an attribute of the first electronic device <NUM> or the second external electronic device <NUM>. The application <NUM> may include an application received from the first electronic device <NUM> or the second external electronic device <NUM>. The application <NUM> may include a preloaded application or a third-party application downloadable from a server. The names of the elements of the program module <NUM> illustrated may vary with the type of an operating system.

At least a part of the program module <NUM> may be implemented with software, firmware, hardware, or a combination thereof. At least a part of the program module <NUM>, for example, may be implemented (e.g., executed) by a processor (e.g., the processor <NUM>). At least a part of the program module <NUM> may include, for example, a module, a program, a routine, sets of instructions, or a process for performing at least one function.

Each of the elements described herein may be configured with one or more components, and the names of the elements may be changed according to the type of an electronic device. In an embodiment of the present disclosure, an electronic device may include at least one of the elements described herein, and some elements may be omitted or other additional elements may be added. Further, some of the elements of an electronic device may be combined with each other so as to form one entity, so that the functions of the elements may be performed in the same manner as before the combination.

The term "module" used herein may represent, for example, a unit including one of hardware, software, firmware, and a combination thereof. The term "module" may be interchangeably used with the terms "unit," "logic," "logical block," "component" and "circuit. " The term "module" may indicate a minimum unit of an integrated component or may indicate a part thereof. The term "module" may indicate a minimum unit for performing one or more functions or a part thereof. The term "module" may indicate a unit that may be implemented mechanically or electronically. For example, the term "module" may indicate a unit that includes at least one of an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and a programmable-logic device for performing some operations, which are known or will be developed.

At least a part of devices (e.g., modules or functions thereof) or methods (e.g., operations) according to an embodiment of the present disclosure may be implemented as instructions stored in a non-transitory computer-readable recording medium in the form of a program module. In the case where instructions are performed by a processor (e.g., the processor <NUM>), the processor may perform functions corresponding to the instructions. The non-transitory computer-readable recording medium may be, for example, the memory <NUM>.

A non-transitory computer-readable recording medium may include a hard disk, a floppy disk, a magnetic medium (e.g., a magnetic tape), an optical medium (e.g., a compact disc ROM (CD-ROM), a digital versatile disc (DVD)), a magneto-optical medium (e.g., a floptical disk), or a hardware device (e.g., a ROM, a RAM, a flash memory, or the like). Program instructions may include machine language code generated by compilers and high-level language code that can be executed by computers using interpreters. The above-mentioned hardware device may be configured to be operated as one or more software modules for performing operations of an embodiment of the present disclosure and vice versa.

A module or a program module according to an embodiment of the present disclosure may include at least one of the above-mentioned elements, or some elements may be omitted or other additional elements may be added. Operations performed by a module, a program module or other elements according to an embodiment of the present disclosure may be performed in a sequential, parallel, iterative or heuristic way. Furthermore, some operations may be performed in another order or may be omitted, or other operations may be added.

Claim 1:
An electronic device, comprising:
an input panel (<NUM>) configured to periodically sense touch coordinates corresponding to a touch manipulation of a user; and
a processor (<NUM>) configured to:
periodically receive the touch coordinates from the input panel (<NUM>),
determine (<NUM>) whether a touch event, corresponding to the touch coordinates, occurs,
count (<NUM>) a number of times that a touch move event in the touch event is received; and
determine (<NUM>) whether the number of times that the touch move event in the touch event is received is greater than or equal to a pre-determined number of times;
in response to determining that the number of times that the touch move events in the touch event is received is greater than or equal to the pre-determined number of times, identify a variation of the touch coordinates based on the touch coordinates and determine (<NUM>) whether a variation of touch coordinates is less than a reference value for determining movement of the touch manipulation,
in response to determining that the variation of the touch coordinates is less than the reference value for determining movement of the touch manipulation, determine (<NUM>) whether the variation of the touch coordinates is in a certain range;
in response to determining that the variation of touch coordinates is in the certain range, change (<NUM>) the reference value to the variation of the touch coordinates, and
determine whether the touch manipulation moves, based on the changed reference value.