CN111263230B - Distributed splicing display picture synchronization method and system - Google Patents

Distributed splicing display picture synchronization method and system Download PDF

Info

Publication number
CN111263230B
CN111263230B CN202010102861.6A CN202010102861A CN111263230B CN 111263230 B CN111263230 B CN 111263230B CN 202010102861 A CN202010102861 A CN 202010102861A CN 111263230 B CN111263230 B CN 111263230B
Authority
CN
China
Prior art keywords
decoder
frame
original signal
encoder
display
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
CN202010102861.6A
Other languages
Chinese (zh)
Other versions
CN111263230A (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 Zen Ai Technology Co ltd
Original Assignee
Beijing Zen Ai Technology 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 Zen Ai Technology Co ltd filed Critical Beijing Zen Ai Technology Co ltd
Priority to CN202010102861.6A priority Critical patent/CN111263230B/en
Publication of CN111263230A publication Critical patent/CN111263230A/en
Application granted granted Critical
Publication of CN111263230B publication Critical patent/CN111263230B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering

Abstract

The invention relates to a distributed splicing display picture synchronization method, which comprises the following steps: the encoder encodes the x frame original signal into n parts according to the number of the decoders, wherein n is the same as the number of the decoders, and n is larger than 1; sequentially sending data to each decoder, wherein the data comprises one coding part and an original signal frame number x; each decoder decodes and temporarily stores the received data, and replies the received x-th frame original signal to the encoder according to the original signal frame number x in the received data; after receiving the message of replying and receiving the original signal of the x-th frame by one decoder, the encoder continues to wait for the replying of other decoders and counts the number of the received replies; when the statistical result reaches n, the encoder broadcasts a display signal to each decoder; each decoder starts outputting respective decoding content to a respective corresponding screen after receiving the broadcast display signal. The invention can effectively solve the problem of synchronization of the distributed spliced display pictures in the prior art.

Description

Distributed splicing display picture synchronization method and system
Technical Field
The present invention relates to a synchronization method, and in particular, to a method and a system for synchronizing distributed tiled display frames.
Background
In the existing distributed tiled display technology, as shown in fig. 1, an encoder divides an x-th frame original signal into 4 parts for encoding, that is, encodes the x-th frame original signal into 4 parts, each part is respectively sent to a corresponding decoder for decoding, the decoded content is sent to each small screen, and each small screen is tiled together to display the whole x-th frame original signal. The encoder may encode the original signal of the xth frame into the same number of parts as the number of decoders according to the number of decoders.
However, when the original signal needs to be displayed on the screen 2 × 2 in the figure, the sequence of the respective encoded parts sent by the encoder, the fluctuation of the network, and the difference of the decoder performance all cause the decoder to receive the corresponding part of the same frame of picture of the original signal, and the time is not consistent or not necessary, which may cause the tearing and splitting of the picture if the content of each decoder is directly displayed on the large screen.
Disclosure of Invention
In view of the above problems, the present invention provides a novel distributed tiled display screen synchronization method, which includes:
the encoder encodes the x frame original signal into n parts according to the number of the decoders, wherein n is the same as the number of the decoders, and n is larger than 1;
sequentially sending data to each decoder, wherein the data comprises one coding part and an original signal frame number x;
each decoder decodes and temporarily stores the received data, and replies the received x-th frame original signal to the encoder according to the original signal frame number x in the received data;
after receiving the message of the decoder replying to receive the original signal of the x-th frame, the encoder continues to wait for the replying of other decoders and counts the number of the received replies; when the statistical result reaches n, the encoder broadcasts a display signal to each decoder;
each decoder starts to output respective decoding content to a respective corresponding screen after receiving the broadcast display signal, and the respective corresponding screen displays the decoding content.
The second aspect of the present invention provides a distributed tiled display picture synchronization system, which includes an encoder and n decoders, where n is greater than 1, and is characterized in that: the encoder encodes the x frame original signal into n parts, and the n parts are the same as the number of decoders; the encoder also sequentially sends data to each decoder, wherein the data comprises one of the coding parts and an original signal frame number x;
each decoder decodes and temporarily stores the received data, and replies the received x-th frame original signal to the encoder according to the original signal frame number x in the received data;
after receiving the message of the decoder replying to receive the original signal of the x-th frame, the encoder continues to wait for the replying of other decoders and counts the number of the received replies; when the statistical result reaches n, the encoder broadcasts a display signal to each decoder;
each decoder outputs respective decoding content to respective corresponding screens when receiving the broadcast display signals, and the respective corresponding screens display the content.
A third aspect of the present invention provides a method for synchronizing distributed tiled display frames, comprising:
encoding the original signal of the x frame into n parts according to the number of decoders, wherein n is the same as the number of decoders, and n is larger than 1;
sequentially sending data to each decoder, wherein the data comprises one coding part and an original signal frame number x;
receiving and counting the messages of the original signals of the x-th frame which are replied by one decoder based on the received data, continuously waiting for the replies of other decoders, and counting the number of the received replies; and when the statistical result reaches n, the encoder broadcasts a display signal to each decoder, so that each decoder starts to output respective decoding content to a respective corresponding screen after receiving the broadcast display signal, and the respective corresponding screen displays the decoding content.
A fourth aspect of the present invention provides an encoding device for distributed tiled display picture synchronization, comprising a memory and a processor: wherein the memory is to store executable program code; the processor is configured to read executable program code stored in the memory to perform the method of the third aspect.
A fifth aspect of the invention provides a computer readable storage medium storing a computer program which, when executed by a processor, implements the method of the preceding third aspect.
The invention can effectively solve the problem of synchronization of the distributed spliced display pictures in the prior art, so that the displayed contents have synchronism, and the invention does not need to measure and calculate the specific time delay of each node and each link, thereby having strong operability and high stability.
Drawings
FIG. 1 shows a schematic diagram of a distributed tiled display technique;
FIG. 2 illustrates a process timing flow diagram for a distributed tiled display synchronization method according to some embodiments of the present invention;
Detailed Description
The invention will now be described, by way of example, with reference to the accompanying figures 1 and 2, in conjunction with embodiments, it being noted that the embodiments and features of the embodiments in the present application can be combined with each other without conflict. Additionally, the described embodiments are intended to be illustrative of some, but not all embodiments of the invention.
Fig. 1 shows a schematic diagram of a distributed tiled display technique.
As shown in fig. 1, let the original signal (or image) of the x-th frame include the 1 st, 2 nd, 3 nd and 4 th parts numbered 1-4, the frame signal is encoded into 4 parts numbered 1-4 by the encoder 11, each part is sent to the corresponding decoder (decoder 21-24), let the decoders 21-24 decode the signal sent by the encoder 11, the decoded content is sent to the corresponding small screens (31-34) in the spliced screen 30, and the corresponding small screens (31-34) are spliced together to display the entire original signal of the x-th frame. According to the difference of the number of decoders, the encoder can encode the original signal of the x frame into a plurality of parts 1-4 with the same number as the decoders; each of which is sent to a corresponding decoder 21-24, respectively.
Although the background art is described with reference to fig. 1 in part, it is not suggested that the present invention, also described with reference to fig. 1, is prior art and fig. 1 is referenced herein because its overall structural schematic may still be used to assist in the description of the present invention.
FIG. 2 illustrates a process timing flow diagram for a distributed tiled display synchronization method according to some embodiments of the present invention.
Referring now to fig. 2 and fig. 1, in fig. 2, the original signal of the x-th frame is transmitted to the encoder 11 first, the encoder 11 encodes the original signal of the x-th frame into n parts according to the number of decoders, n is the same as the number of decoders, and the number of decoders shown in fig. 1 is 4, so that the encoder 11 encodes the picture into 4 blocks, i.e., 4 parts 1-4.
The encoder then sends data to each decoder in turn, the data including one of the encoded portions corresponding to that decoder and the original signal frame number x.
Each decoder which receives the corresponding data decodes and temporarily stores the received data, and replies the original signal of the x-th frame to the encoder according to the frame number x of the original signal in the received data. After that, the decoder does not immediately start outputting the decoded content to the screen, but waits for a display signal, that is, the decoder sends a signal to the encoder to inform that it has received the original signal of the xth frame, and then waits for a display signal from the encoder to instruct the decoder to display the decoded content.
After receiving the message that the decoder replies to the original signal of the x-th frame, the encoder continues to wait for the replies of other decoders and counts the number of received replies (referring to the replies about the received message of the x-th frame). When the statistical result reaches n, starting to broadcast the display signal to each decoder, and each decoder enters a 'starting display' state after receiving the broadcast display signal, namely, starting to output respective decoding content to respective corresponding screens, and displaying images by the respective corresponding screens; when the statistical result does not reach n and the waiting time is not over, the waiting is continued and the number of the subsequently received returns is counted, and the above-mentioned cycle is repeated.
In the above, the decoder sends a signal to the encoder that it has received the original signal of the x-th frame, although only a portion of the original signal of the frame is actually received; the invention provides the design, and the content replied by each decoder is consistent, so that the encoder can conveniently and uniformly process and count the replies from all the decoders.
In some unexpected situations, such as an extreme situation of jamming of the encoder hardware, it may happen that the encoder cannot send some encoded parts to the corresponding decoder in time, and accordingly, the encoder cannot receive the reply from the decoder. Therefore, according to some embodiments of the present invention, when the statistical result does not reach n and the waiting time is exceeded, the encoder directly broadcasts a display message to each decoder to notify that it enters a state of "start displaying", that is, each decoder responds to the display message to make each decoder maintain outputting the content on the current display screen, that is, outputting the content of the previous decoding display to the corresponding screen, displaying the image by the corresponding screen, and this time is equivalent to discarding the original signal of the x-th frame and avoiding waiting for the permanent time.
The application also provides a distributed splicing display picture synchronization system, which comprises a decoder and an encoder, wherein the encoder is used for encoding the x frame original signal to be displayed into n parts, and the n parts and the number of the decoder are the same; the encoder is also arranged to send data to each decoder in turn, the data comprising one of the encoded portions and the original signal frame number x (i.e. the frame number of the entire picture before it has been cut into n portions).
The decoder is used for receiving the data sent by the encoder, decoding and temporarily storing the data, and replying the x-th frame of the original signal frame to the encoder according to the original signal frame number x in the received data. The decoder does not automatically output the decoded content immediately at this time.
After the encoder receives the message that the decoder replies to the original signal frame of the x-th frame, the encoder continues to wait for the replies of other decoders, and counts the number of replies received (referring to the number of times of replies about the message of the x-th frame has been received), and this process continues until the statistical result reaches n. When the number of replies reaches n, the encoder starts broadcasting the display signal to each decoder.
Each decoder enters a 'display start' state after receiving the broadcast display signal, that is, starts to output the respective decoded content to the respective corresponding screen, and the respective corresponding screen displays the image.
According to some embodiments of the present invention, when the statistical result does not reach n and the waiting time is exceeded, the encoder broadcasts a display message directly to each decoder to notify that it enters a state of "start displaying", that is, each decoder keeps outputting the content on the current display screen, that is, outputting the content of the previous decoding display to the corresponding screen, displaying the image by the corresponding screen, and this time is equivalent to discarding the x-th frame image and avoiding waiting permanently.
The method and system for distributed tiled display picture synchronization of the present application was presented above around encoders and decoders. The encoder may be part of a computer or any device with encoding capability or part of a network server, and thus, in addition to the invention proposed around the aforementioned hardware encoder, the present application also proposes a method for distributed tiled display picture synchronization comprising:
encoding the original signal of the x frame into n parts according to the number of decoders, wherein n is the same as the number of decoders, and n is larger than 1;
sequentially sending data to each decoder, wherein the data comprises one coding part and an original signal frame number x;
receiving and counting the messages of the original signals of the x-th frame which are replied by one decoder based on the received data, continuously waiting for the replies of other decoders, and counting the number of the received replies; and when the statistical result reaches n, broadcasting a display signal to each decoder so that each decoder starts to output respective decoding content to a respective corresponding screen after receiving the broadcast display signal, and displaying the decoding content by the respective corresponding screen.
According to some embodiments of the present invention, when the statistical result does not reach n and the timeout is waited for, the display message is broadcasted to each decoder, so that each decoder responds to the display message, keeps outputting the currently displayed content to the corresponding screen, and displays the content on the corresponding screen. According to some embodiments of the present invention, when the statistical result does not reach n and the waiting time is not exceeded, the waiting of other decoders is continued and the number of replies received subsequently is counted. In addition, what has been described above with respect to fig. 1 and 2 also applies here, and for the sake of simplicity, no further description is given here.
The present application also provides an encoding device for distributed tiled display picture synchronization, comprising a memory and a processor: wherein the memory is to store executable program code; the processor is used for reading the executable program codes stored in the memory to execute the distributed splicing display picture synchronization method.
The present application further provides a computer-readable storage medium, which stores a computer program, wherein the computer program is executed by a processor to implement the foregoing distributed tiled display screen synchronization method.
The embodiment of the invention can effectively solve the problem of synchronization of the distributed spliced display pictures in the prior art, so that the displayed contents have synchronism, and the method does not need to measure and calculate the specific time delay of each node and each link, thereby having strong operability and high stability.

Claims (5)

1. A distributed splicing display picture synchronization method comprises the following steps:
the encoder encodes the x frame original signal into n parts according to the number of the decoders, wherein n is the same as the number of the decoders, and n is larger than 1;
sequentially sending data to each decoder, wherein the data comprises one coding part and an original signal frame number x;
each decoder decodes and temporarily stores the received data, and replies the received x-th frame original signal to the encoder according to the original signal frame number x in the received data;
after receiving the message of replying and receiving the original signal of the x-th frame by one decoder, the encoder continues to wait for the replying of other decoders and counts the number of the received replies; when the statistical result reaches n, the encoder broadcasts a display signal to each decoder;
each decoder starts to output respective decoding content to a respective corresponding screen after receiving the broadcast display signal, and the respective corresponding screen displays the decoding content;
when the statistical result does not reach n and the waiting time is not overtime, continuing waiting for the replies of other decoders and counting the number of replies received subsequently;
when the statistical result does not reach n and waits for overtime, broadcasting a display message to each decoder by the encoder; and each decoder responds to the display message, keeps outputting the content which is decoded and displayed before to the corresponding screen, displays the content by the corresponding screen, and discards the original signal of the x-th frame.
2. A distributed tiled display picture synchronization system comprising an encoder and n decoders, n being greater than 1, characterized in that: the encoder encodes the x frame original signal into n parts, and the n parts are the same as the number of decoders; the encoder also sequentially sends data to each decoder, wherein the data comprises one of the coding parts and an original signal frame number x;
each decoder decodes and temporarily stores the received data, and replies the received x-th frame original signal to the encoder according to the original signal frame number x in the received data;
after receiving the message of replying and receiving the original signal of the x-th frame by one decoder, the encoder continues to wait for the replying of other decoders and counts the number of the received replies; when the statistical result reaches n, the encoder broadcasts a display signal to each decoder;
each decoder outputs respective decoding content to respective corresponding screens after receiving the broadcast display signals, and the respective corresponding screens display the decoding content;
when the statistical result does not reach n and the waiting time is not overtime, continuing waiting for the replies of other decoders and counting the number of replies received subsequently;
when the statistical result does not reach n and the timeout is waited for, the encoder broadcasts a display message to each decoder; and each decoder responds to the display message, keeps outputting the content which is decoded and displayed before to the corresponding screen, displays the content by the corresponding screen, and discards the original signal of the x-th frame.
3. A method for distributed tiled display synchronization, comprising:
encoding the original signal of the x frame into n parts according to the number of decoders, wherein n is the same as the number of decoders, and n is larger than 1;
sequentially sending data to each decoder, wherein the data comprises one coding part and an original signal frame number x;
receiving and counting the messages of the original signals of the x-th frame which are replied by one decoder based on the received data, continuously waiting for the replies of other decoders, and counting the number of the received replies; when the statistical result reaches n, broadcasting a display signal to each decoder so that each decoder starts to output respective decoding content to a respective corresponding screen after receiving the broadcast display signal and the decoding content is displayed by the respective corresponding screen;
and when the statistical result does not reach n and the timeout is waited, broadcasting a display message to each decoder, enabling each decoder to respond to the display message, maintaining and outputting the content of the previous decoding display to the corresponding screen, displaying the content by the corresponding screen, and discarding the original signal of the x-th frame.
4. An encoding device for distributed tiled display picture synchronization comprising a memory and a processor: wherein the memory is to store executable program code; the processor is configured to read executable program code stored in the memory to perform the distributed tiled display screen synchronization method according to claim 3.
5. A computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the distributed tiled display synchronization method of claim 3.
CN202010102861.6A 2020-02-19 2020-02-19 Distributed splicing display picture synchronization method and system Active CN111263230B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010102861.6A CN111263230B (en) 2020-02-19 2020-02-19 Distributed splicing display picture synchronization method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010102861.6A CN111263230B (en) 2020-02-19 2020-02-19 Distributed splicing display picture synchronization method and system

Publications (2)

Publication Number Publication Date
CN111263230A CN111263230A (en) 2020-06-09
CN111263230B true CN111263230B (en) 2022-04-26

Family

ID=70954591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010102861.6A Active CN111263230B (en) 2020-02-19 2020-02-19 Distributed splicing display picture synchronization method and system

Country Status (1)

Country Link
CN (1) CN111263230B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112887731B (en) * 2021-01-22 2023-05-26 北京淳中科技股份有限公司 Compressed code stream fetching method and device, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223415A (en) * 2011-06-21 2011-10-19 广东威创视讯科技股份有限公司 Window operation synchronization method of distributed processing system and device thereof
CN102622196A (en) * 2012-02-10 2012-08-01 江苏清投视讯科技有限公司 Network transmission based picture synchronization technology for multi-screen display system
CN103165104A (en) * 2011-12-12 2013-06-19 宁波Gqy视讯股份有限公司 Video signal synchronously displaying method of spliced screen
CN103986960A (en) * 2014-06-03 2014-08-13 王军明 Method for single-video picture division route teletransmission precise synchronization tiled display
CN106775540A (en) * 2016-12-30 2017-05-31 上海寰视网络科技有限公司 A kind of ultrahigh resolution GIS map controls large-size screen monitors system and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130085831A (en) * 2012-01-20 2013-07-30 삼성전자주식회사 Display apparatus and method for controlling the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223415A (en) * 2011-06-21 2011-10-19 广东威创视讯科技股份有限公司 Window operation synchronization method of distributed processing system and device thereof
CN103165104A (en) * 2011-12-12 2013-06-19 宁波Gqy视讯股份有限公司 Video signal synchronously displaying method of spliced screen
CN102622196A (en) * 2012-02-10 2012-08-01 江苏清投视讯科技有限公司 Network transmission based picture synchronization technology for multi-screen display system
CN103986960A (en) * 2014-06-03 2014-08-13 王军明 Method for single-video picture division route teletransmission precise synchronization tiled display
CN106775540A (en) * 2016-12-30 2017-05-31 上海寰视网络科技有限公司 A kind of ultrahigh resolution GIS map controls large-size screen monitors system and method

Also Published As

Publication number Publication date
CN111263230A (en) 2020-06-09

Similar Documents

Publication Publication Date Title
US8150174B2 (en) Method and apparatus for encoding and decoding multi-view image
CN109862409B (en) Video decoding method, video playing method, device, system, terminal and storage medium
US10313703B2 (en) Video data encoding and decoding methods and apparatuses
CN111949237A (en) Image display method and device
CN109587478B (en) Media information processing method and device
US11949853B2 (en) Data decoding method and apparatus, and data coding method and apparatus
CN111263230B (en) Distributed splicing display picture synchronization method and system
CN110740380A (en) Video processing method and device, storage medium and electronic device
CN114902673A (en) Indication of video slice height in video sub-pictures
JP2018182770A (en) Supplemental enhancement information including reliability level and mixed content information
EP1347651A1 (en) Method and apparatus for decoding motion video image
US20180255342A1 (en) Method for decoding a video bitstream and decoder for decoding a video bitstream
CN109525852B (en) Live video stream processing method, device and system and computer readable storage medium
CN111417005B (en) Video signal synchronous encoding method, device, system and encoding end
CN111279694A (en) GDR code stream encoding method, terminal device and machine readable storage medium
EP3611923A1 (en) Arrangements and methods thereof for processing video
KR101811443B1 (en) Encoding system and decoding system of dividing the video frame image
JP4578326B2 (en) Terrestrial digital broadcast receiver
JP2003299106A (en) Multimedia contents processing method
CN109672923B (en) Data processing method and device
KR100565650B1 (en) Controlling method of slide service using Digital Multimedia Broadcasting
US9479823B2 (en) Transmitting device and receiving device
US7653135B2 (en) MPEG field data-driven display
CN113810770A (en) Image processing method, image processing device, electronic equipment and storage medium
CN111683216A (en) Interlaced video processing method, system, device and medium in interlacing mode

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