CN108984144B - Data acquisition method, device and storage medium - Google Patents

Data acquisition method, device and storage medium Download PDF

Info

Publication number
CN108984144B
CN108984144B CN201810918470.4A CN201810918470A CN108984144B CN 108984144 B CN108984144 B CN 108984144B CN 201810918470 A CN201810918470 A CN 201810918470A CN 108984144 B CN108984144 B CN 108984144B
Authority
CN
China
Prior art keywords
signal
data
host
request signal
data request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810918470.4A
Other languages
Chinese (zh)
Other versions
CN108984144A (en
Inventor
刘金山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201810918470.4A priority Critical patent/CN108984144B/en
Publication of CN108984144A publication Critical patent/CN108984144A/en
Application granted granted Critical
Publication of CN108984144B publication Critical patent/CN108984144B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Abstract

The present disclosure relates to a data acquisition method, apparatus and storage medium, applied to a display driver, the method comprising: sending a data request signal to a host, wherein the data request signal has a preset effective duration; and if the first confirmation signal for indicating that the data processing of the host is completed is not received within the effective duration of the data request signal, prolonging the effective duration of the data request signal. Therefore, under the condition that the host machine delays data processing, the display driver can actively prolong the time of data request, so that the host machine is waited for completing data processing, the effect of dynamic refreshing is realized, the dynamic refreshing can be realized under the condition of not occupying host machine resources, and the host machine resources are saved.

Description

Data acquisition method, device and storage medium
Technical Field
The present disclosure relates to the field of display, and in particular, to a data acquisition method, apparatus, and storage medium.
Background
At present, the data transmission process of an LCD (Liquid Crystal Display) is as follows: the host processes the nth frame data, and when the processing is completed and the time for the display driver to receive the nth frame data is up, the nth frame data is sent to the display driver, and then the host starts processing the next frame data, namely the (N + 1) th frame data, and the display driver can drive the display to display the received nth frame data. However, as the display content is becoming rich and the host may have a delay in processing data, it often happens that the time for the display driver to receive the (N + 1) th frame data is already reached when the host has not processed the (N + 1) th frame data, and at this time, the refresh rate of the display needs to be adjusted, that is, the dynamic refresh rate technique in which the host occupies more data processing time by sending Porch invalid data (i.e., non-display area data). However, such a processing method needs to occupy the host resources, which increases the power consumption of the host.
Disclosure of Invention
To overcome the problems in the related art, the present disclosure provides a data acquisition method, apparatus, and storage medium.
According to a first aspect of the embodiments of the present disclosure, there is provided a data acquisition method applied to a display driver, the method including:
sending a data request signal to a host, wherein the data request signal has a preset effective duration;
and if the first confirmation signal for indicating that the data processing of the host is completed is not received within the effective duration of the data request signal, prolonging the effective duration of the data request signal.
Optionally, the method further comprises:
and if the first confirmation signal is received within the effective duration of the data request signal, stopping sending the data request signal when the duration of the data request signal reaches the effective duration, and sending a data receiving signal to the host.
Optionally, the method further comprises:
if a second confirmation signal which is sent by the host and used for indicating that the data transmission is finished is received, re-executing the data request signal sent to the host, wherein the data request signal has preset effective duration; and if a first confirmation signal for indicating that the host data processing is completed is not received within the valid duration of the data request signal, extending the valid duration of the data request signal.
Optionally, the second acknowledgement signal is a vertical leading edge VFP signal.
Optionally, the sending a data receiving signal to the host includes:
and sending a low-level tearing effect TE signal to the host.
Optionally, the sending a data request signal to the host includes:
and sending a high-level tearing effect TE signal to the host.
Optionally, the first acknowledgement signal is a vertical back porch VBP signal.
According to a second aspect of the embodiments of the present disclosure, there is provided a data acquisition apparatus applied to a display driver, the apparatus including:
the device comprises a signal sending module, a data receiving module and a data sending module, wherein the signal sending module is configured to send a data request signal to a host, and the data request signal has a preset effective duration;
a signal extension module configured to extend the valid duration of the data request signal if a first acknowledgement signal indicating completion of processing of the host data is not received within the valid duration of the data request signal.
Optionally, the apparatus further comprises:
a signal switching module configured to stop sending the data request signal and send a data reception signal to the host when the duration of the data request signal reaches the valid duration if the first acknowledgement signal is received within the valid duration of the data request signal.
Optionally, the device is further configured to, if a second acknowledgement signal sent by the host to indicate that data transmission is completed is received, the signal sending module resends a data request signal to the host, where the data request signal has a preset valid duration; and if the first confirmation signal for indicating that the data processing of the host is completed is not received within the effective duration of the data request signal, the signal extension module extends the effective duration of the data request signal.
Optionally, the second acknowledgement signal is a vertical leading edge VFP signal.
Optionally, the signal switching module is configured to send a low level tearing effect TE signal to the host.
Optionally, the signal sending module is configured to send a high level tearing effect TE signal to the host.
Optionally, the first acknowledgement signal is a vertical back porch VBP signal.
According to a third aspect of the embodiments of the present disclosure, there is provided a data acquisition apparatus including:
a processor;
a memory for storing processor-executable instructions;
wherein the processor is configured to execute the instructions in the memory to implement the steps of the data acquisition method provided by the first aspect of the present disclosure.
According to a fourth aspect of embodiments of the present disclosure, there is provided a computer-readable storage medium having stored thereon computer program instructions which, when executed by a processor, implement the steps of the data acquisition method provided by the first aspect of the present disclosure.
Through the technical scheme, the display driver sends the data request signal to the host, and continuously sends the data request signal to the host under the condition that the data processing of the host is not finished. Therefore, under the condition that the host machine delays data processing, the display driver can actively prolong the time of data request, so that the host machine is waited for completing data processing, the effect of dynamic refreshing is realized, the dynamic refreshing can be realized under the condition of not occupying host machine resources, and the host machine resources are saved.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and together with the description, serve to explain the principles of the disclosure.
FIG. 1 is a flow chart illustrating a method of data acquisition according to an exemplary embodiment.
FIG. 2 is a block diagram illustrating a data acquisition device according to an example embodiment.
Fig. 3 is a block diagram illustrating a data acquisition device according to another exemplary embodiment.
FIG. 4 is a block diagram illustrating a data acquisition device according to an example embodiment.
Detailed Description
Reference will now be made in detail to the exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, like numbers in different drawings represent the same or similar elements unless otherwise indicated. The implementations described in the exemplary embodiments below are not intended to represent all implementations consistent with the present disclosure. Rather, they are merely examples of apparatus and methods consistent with certain aspects of the present disclosure, as detailed in the appended claims.
The display driver receives data from the host frame by frame and displays the received data on the display device. Illustratively, the display device may be an LCD. The display driver achieves the display effect of the display device by modulating the phase, peak, frequency, etc. of the potential signal applied to the electrodes of the display device to establish a driving electric field. The display driver and the host may communicate with each other through a TE (Tearing Effect) signal to receive data from the host frame by frame. The TE signal is used for enabling the data sent from the host to be complete frame data, so that the data displayed by the display device is prevented from being divided into a plurality of parts to influence the display effect. The display driver may set the TE signal sent to the host to be a low level TE signal, i.e., a TE low level signal, to receive the next frame data from the host, and the display driver may always perform data reception during the period when the display driver sends the TE low level signal to the host.
FIG. 1 is a flow chart illustrating a method of data acquisition according to an exemplary embodiment. As shown in fig. 1, the method may be applied to a display driver, including the following steps.
In step 11, a data request signal is sent to the host. The data request signal has a preset active duration.
The display driver may send a data request signal to the host to inform the host that a processed signal may be sent to the display driver. The data signal may have a preset valid duration, for example, the preset valid duration may be in time units of Hsync (horizontal synchronization signal), the horizontal synchronization signal is related to the number of pixel rows of a display device (e.g., a display screen), if the number of pixels of the display device is X rows, the number of horizontal synchronization signals in 1s may be X, the time of each horizontal synchronization signal is 1/X(s), and the preset valid duration may be 1/X(s).
Illustratively, the data request signal may be a TE high signal. As can be seen from the above, the display driver and the host can communicate with each other through the TE signal, and when the display driver sends the TE high signal to the host, it indicates that the display driver can receive the data of a new frame, and informs the host of this information through the TE high signal, so as to facilitate the subsequent data reception.
In step 12, if the first acknowledgement signal indicating the completion of the host data processing is not received within the valid duration of the data request signal, the valid duration of the data request signal is extended.
Illustratively, the first acknowledge signal may be a VBP (Vertical Back Porch) signal. After the host completes processing a frame of data, the host generates a VBP signal, which may be invalid data before a frame of data starts after a vertical synchronization period.
If the first acknowledgement signal indicating that the data processing of the host is completed is not received within the valid duration of the data request signal, it indicates that the data processing of the host is not completed before the current valid duration is over (for example, the data processing of the host is delayed), and therefore, the valid duration of the data request signal may be extended to set aside the time for the host to process the data. And then, if the first confirmation signal is not received in the new effective duration, continuing to prolong the effective duration, and repeating the steps.
For example, the extension of the valid duration may be performed in a basic unit of a preset valid duration, and the time corresponding to the preset valid duration is increased every time the extension is performed. For example, if the preset valid duration is 10ms, if the first acknowledgement signal is not received within 10ms, then 10ms is added to the current valid duration as a new current valid duration, that is, the valid duration is extended to 20ms, where the first 10ms is a time elapsed before, and then it is determined whether the first acknowledgement signal is received within the next 10ms of the new valid duration 20ms, and if the first acknowledgement signal is not received, then 10ms is continuously added to the current valid duration, and so on.
For example, a timer may be disposed inside the display driver, the timer may have a basic time unit, and each time the time count of the timer is increased by one, the time length corresponding to one basic time unit may be increased. The preset effective duration can be synchronous with the basic time unit, and in combination with the self-contained timer function of the display driver, the display driver starts to time when sending the data request signal to the host, if the first acknowledgement signal is not received in the time unit corresponding to one time count of the timer, a time count is automatically increased, the effective duration is updated, in the process, the sending of the data request signal to the host is kept, namely, the high level of the TE signal is kept, whether the first acknowledgement signal is received or not is determined in the new effective duration, and the process is circulated.
With the above arrangement, the display driver transmits a data request signal to the host, and continues to transmit the data request signal to the host in a case where data processing of the host is not completed. Therefore, under the condition that the host machine delays data processing, the display driver can actively prolong the time of data request, so that the host machine is waited for completing data processing, the effect of dynamic refreshing is realized, the dynamic refreshing can be realized under the condition of not occupying host machine resources, and the host machine resources are saved.
In one embodiment, the method provided by the present disclosure may further include the steps of: and if the first confirmation signal is received within the effective duration of the data request signal, stopping sending the data request signal when the duration of the data request signal reaches the effective duration, and sending a data receiving signal to the host.
When the first acknowledgement signal is received within the valid duration of the data request signal, indicating that the data processing by the host has been completed within the current valid duration, the data may be sent to the display driver. Accordingly, the display driver may stop transmitting the data request signal while transmitting the data reception signal to the host to start receiving data.
Illustratively, the data receiving signal may be a TE low level signal. As described above, the data request signal is a TE high level signal, and the data receiving signal is a TE low level signal, so that the display driver stops sending the data request signal and sends the data receiving signal to the host, or the display driver switches the TE signal from a high level to a low level.
Illustratively, the host may send data to the display driver data in the form of MIPI (Mobile Industry Processor Interface) data.
Through the scheme, the display driver can start or close the data receiving operation according to the completion of the data processing of the host.
In one embodiment, the method provided by the present disclosure may further include the steps of: if a second confirmation signal which is sent by the host and used for indicating that the data transmission is completed is received, the step 11 is executed again, and a data request signal is sent to the host, wherein the data request signal has a preset effective duration; and step 12, if the first confirmation signal for indicating the completion of the data processing of the host is not received within the valid duration of the data request signal, the valid duration of the data request signal is prolonged.
Illustratively, the second acknowledge signal may be a VFP (Vertical Front Porch) signal. The VFP signal may be invalid data from the end of transmission of the frame data until the start of the next frame vertical synchronization period.
After the host sends a frame of complete data, the host sends a VFP signal to indicate that the data of the current frame has been sent. When receiving the second acknowledgement signal sent by the host for indicating that the data transmission is completed, indicating that the transmission of the current data sent by the host to the display driver is completed, the transmission of the subsequent data can be started, so that steps 11 and 12 can be executed again to start the data transmission for the next frame data.
FIG. 2 is a block diagram illustrating a data acquisition device according to an example embodiment. As shown in fig. 2, the apparatus 20 may include:
a signal sending module 21 configured to send a data request signal to a host, where the data request signal has a preset valid duration;
a signal extension module 22 configured to extend the valid duration of the data request signal if the first acknowledgement signal indicating that the host data processing is complete is not received within the valid duration of the data request signal.
Fig. 3 is a block diagram illustrating a data acquisition device according to another exemplary embodiment. As shown in fig. 3, the apparatus 20 further includes:
a signal switching module 31 configured to stop sending the data request signal and send a data receiving signal to the host when the duration of the data request signal reaches the valid duration if the first acknowledgement signal is received within the valid duration of the data request signal.
Optionally, the device is further configured to, if a second acknowledgement signal sent by the host to indicate that data transmission is completed is received, the signal sending module resends a data request signal to the host, where the data request signal has a preset valid duration; and if the first confirmation signal for indicating that the data processing of the host is completed is not received within the effective duration of the data request signal, the signal extension module extends the effective duration of the data request signal.
Optionally, the second acknowledgement signal is a vertical leading edge VFP signal.
Optionally, the signal switching module 31 is configured to send a low-level tearing effect TE signal to the host.
Optionally, the signal sending module 21 is configured to send a high-level tearing effect TE signal to the host.
Optionally, the first acknowledgement signal is a vertical back porch VBP signal.
With regard to the apparatus in the above-described embodiment, the specific manner in which each module performs the operation has been described in detail in the embodiment related to the method, and will not be elaborated here.
The present disclosure also provides a computer readable storage medium having stored thereon computer program instructions which, when executed by a processor, implement the steps of the data acquisition method provided by the present disclosure.
FIG. 4 is a block diagram illustrating a data acquisition device according to an example embodiment. For example, the apparatus 400 may be a display driver.
Referring to fig. 4, the apparatus 400 may include one or more of the following components: a processing component 402, a memory 404, a power component 406, an input/output (I/O) interface 412, and a communication component 416.
The processing component 402 generally controls the overall operation of the apparatus 400. The processing component 402 may include one or more processors 420 to execute instructions to perform all or a portion of the steps of the data acquisition method described above. Further, the processing component 402 can include one or more modules that facilitate interaction between the processing component 402 and other components.
The memory 404 is configured to store various types of data to support operations at the apparatus 400. Examples of such data include instructions for any application or method operating on the apparatus 400. The memory 404 may be implemented by any type or combination of volatile or non-volatile memory devices such as Static Random Access Memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic or optical disks.
Power components 406 provide power to the various components of device 400. Power components 406 may include a power management system, one or more power sources, and other components associated with generating, managing, and distributing power for apparatus 400.
The I/O interface 412 provides an interface between the processing component 402 and a peripheral interface module, which may be an LCD-LCD.
The communication component 416 is configured to facilitate wired or wireless communication between the apparatus 400 and other devices. The apparatus 400 may access a wireless network based on a communication standard, such as WiFi, 2G or 3G, or a combination thereof. In an exemplary embodiment, the communication component 416 further includes a Near Field Communication (NFC) module to facilitate short-range communications. For example, the NFC module may be implemented based on Radio Frequency Identification (RFID) technology, infrared data association (IrDA) technology, Ultra Wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.
In an exemplary embodiment, the apparatus 400 may be implemented by one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field Programmable Gate Arrays (FPGAs), controllers, micro-controllers, microprocessors or other electronic components for performing the above-described data acquisition methods.
In an exemplary embodiment, a non-transitory computer-readable storage medium comprising instructions, such as the memory 404 comprising instructions, executable by the processor 420 of the apparatus 400 to perform the data acquisition method described above is also provided. For example, the non-transitory computer readable storage medium may be a ROM, a Random Access Memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like.
Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the disclosure. This application is intended to cover any variations, uses, or adaptations of the disclosure following, in general, the principles of the disclosure and including such departures from the present disclosure as come within known or customary practice within the art to which the disclosure pertains. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.
It will be understood that the present disclosure is not limited to the precise arrangements described above and shown in the drawings and that various modifications and changes may be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.

Claims (8)

1. A data acquisition method, applied to a display driver, the method comprising:
sending a data request signal to a host, wherein the data request signal has a preset effective duration;
if a first confirmation signal for indicating that the host data processing is completed is not received within the effective duration of the data request signal, the effective duration of the data request signal is prolonged;
wherein the first acknowledgement signal is a vertical back porch VBP signal, the vertical back porch VBP signal being invalid data before a start of a frame of data after a vertical synchronization period.
2. The method of claim 1, further comprising:
and if the first confirmation signal is received within the effective duration of the data request signal, stopping sending the data request signal when the duration of the data request signal reaches the effective duration, and sending a data receiving signal to the host.
3. The method of claim 2, further comprising:
if a second confirmation signal which is sent by the host and used for indicating that the data transmission is finished is received, re-executing the data request signal sent to the host, wherein the data request signal has preset effective duration; and if a first confirmation signal for indicating that the host data processing is completed is not received within the valid duration of the data request signal, extending the valid duration of the data request signal.
4. The method of claim 3, wherein the second acknowledgement signal is a vertical leading edge VFP signal.
5. The method according to any one of claims 2-4, wherein said sending a data reception signal to the host comprises:
and sending a low-level tearing effect TE signal to the host.
6. The method according to any one of claims 1-4, wherein said sending a data request signal to a host comprises:
and sending a high-level tearing effect TE signal to the host.
7. A data acquisition apparatus, comprising:
a processor;
a memory for storing processor-executable instructions;
wherein the processor is configured to execute the instructions in the memory to implement the steps of the method of any one of claims 1-6.
8. A computer-readable storage medium, on which computer program instructions are stored, which program instructions, when executed by a processor, carry out the steps of the method according to any one of claims 1 to 6.
CN201810918470.4A 2018-08-13 2018-08-13 Data acquisition method, device and storage medium Active CN108984144B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810918470.4A CN108984144B (en) 2018-08-13 2018-08-13 Data acquisition method, device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810918470.4A CN108984144B (en) 2018-08-13 2018-08-13 Data acquisition method, device and storage medium

Publications (2)

Publication Number Publication Date
CN108984144A CN108984144A (en) 2018-12-11
CN108984144B true CN108984144B (en) 2021-10-08

Family

ID=64553250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810918470.4A Active CN108984144B (en) 2018-08-13 2018-08-13 Data acquisition method, device and storage medium

Country Status (1)

Country Link
CN (1) CN108984144B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752514A (en) * 2020-06-09 2020-10-09 Oppo广东移动通信有限公司 Display control method, display control device, electronic equipment and computer-readable storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006675B (en) * 2009-08-31 2013-09-11 华为技术有限公司 Data transmission method, transmission equipment and mobile terminal
US10255865B2 (en) * 2014-12-05 2019-04-09 Sharp Kabushiki Kaisha Data processing device connected with display device and control method of display device
WO2016093144A1 (en) * 2014-12-08 2016-06-16 シャープ株式会社 Display control device, display device, and display control method
US10043490B2 (en) * 2014-12-24 2018-08-07 Synaptics Incorporated Requesting display frames from a display source

Also Published As

Publication number Publication date
CN108984144A (en) 2018-12-11

Similar Documents

Publication Publication Date Title
US11184829B2 (en) Method for information transmission adjustment, base station, and user equipment
US20170316734A1 (en) Display control device, display device, and display control method
US9445450B2 (en) Method and apparatus for preserving physical uplink control channel resources
CN113242607B (en) Random access method, equipment and terminal
CN113160747B (en) Display screen frequency conversion method, display driving integrated circuit chip and application processor
EP3373286A1 (en) Method, device and non-transitory computer-readable medium for control of refresh frequency of display unit
WO2020103887A1 (en) Backlight driving method and display device
EP3512251A1 (en) Method and apparatus for advertising channel switch time in a wireless transmission system
EP3637399A1 (en) Method and circuit for adjusting refresh rate, display device and storage medium
US11212748B2 (en) Method of monitoring RAR, method of sending RAR, devices thereof and system
CN108984144B (en) Data acquisition method, device and storage medium
CN110728964B (en) Display frequency adjusting method and device, driving circuit and display device
EP2472498A2 (en) Method and apparatus for reducing power consumption in mobile terminal
US20180101221A1 (en) Advertising machine, and system, method and storage medium for controlling advertising machine
CN108353362B (en) System message receiving method and system message receiving device
US9955418B2 (en) Wireless communication device, electronic watch, wireless communication method, non-transitory recording medium, and wireless communication system
US20160358591A1 (en) Timing controller of display apparatus and operation method thereof
US9865205B2 (en) Method for transmitting data from timing controller to source driver and associated timing controller and display system
CN109189198B (en) Image display method, device, terminal and storage medium
US10896660B2 (en) Display control device, display device, and display control method
US20110211512A1 (en) Frame generation device, reception device, data transmission/reception system, frame generation method, and reception method
CN114071687A (en) Method, device and terminal for processing uplink Timing Advance (TA) value
CN113190315B (en) Display refreshing method and device
US10810960B2 (en) Display device
WO2022237677A1 (en) Random access processing method and apparatus, and terminal

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant