This application is the U.S. National Stage of PCT/EP2018/070097, filed Jul. 25, 2018, which in turn claims priority to French patent application number 1757999 filed Aug. 30, 2017. The content of these applications are incorporated herein by reference in their entireties.
One object of the invention is a method for recovering a target file as well as devices for using such a method.
The field of the invention is that of audio/video receiving equipment and more particularly that of updating such equipments.
A target file is, for example, an operating software of an audio/video equipment or a video file.
An audio/video receiving equipment is a processing device capable of receiving analog or digital signals, and to shape these signals such that they are viewable on a screen, for example a television. Conventionally, such an equipment includes:
Such an equipment is generally called a “box” or even “set top box”. It is the base equipment provided by television providers.
Conventionally, an audio/video receiving equipment makes it also possible to browse the Internet, to access rerun services, to access services.
An audio/video receiving equipment is generally driven by a remote controller. This can be a conventional remote controller or a mobile phone directly connected to the equipment or to a same local area network as the equipment.
Such an equipment can be integrated into a TV set.
Such an equipment includes an operating system to manage interaction of its functionalities with commands issued by a user. This operating system is also called a “firmware”. It is usual to be able to update the firmware in order to enable the equipment to adapt to the evolution of functionalities.
The solution of the state of the art consists in broadcasting, on a dedicated channel via data packets, packets corresponding to instruction codes of the operating system. These packets are broadcast continuously, cyclically one after the other. That is after the last packet is broadcast, broadcasting resumes with the first packet. Therefore, it is sufficient that the equipment listens to the dedicated channel to recover all the data packets the assembly of which will enable it to update its operating system. Conventionally, a data packet includes an identifier which is comprised of a version number and an order number in the version. The ordered assembly of all the packets of a version enables the file corresponding to the operating system to be reconstituted.
This system has the drawback of being long. Indeed, the order of magnitude of the size of an operating system for an audio/video receiving equipment is 130 Mb. On a satellite reception interface, given that the update channel has a narrow pass-band for cost efficiency reasons, it can represent a recovery time in the order of 17 minutes with a 1 Mbps rate, which is not standard. In the case of a new equipment delivered without an operating system, or with a minimum operating system, this time can be regarded as very disappointing.
The invention solves this problem of updating the operating system of an audio/video receiving equipment by teaching the use of several distinct broadcast interfaces at least one of which is without a backward channel. This is also referred to as a non-connected broadcast interface. The invention generally enables the recovery of a target file which can also be a video file which has to be pushed onto an audio/video receiving equipment to be optimised, the video file having to be pushed, for example, further to a transaction on a video on demand platform.
The general principle of the invention is to make data available simultaneously:
Thus, the audio/video receiving equipment acquires data on both interfaces simultaneously:
The downloading is ended when all the data of the target file have been acquired.
One object of the invention is thus a method for recovering a target file by an audio/video receiving equipment, said audio/video receiving equipment including at least two communication interfaces, a first communication interface able to receive broadcast data and a second communication interface able to establish a bidirectional dialog with a server, characterised in that the method includes the following steps of:
Beside the main characteristics just mentioned in the previous paragraph, the method/device according to the invention can have one or more complementary characteristics among the following ones, considered individually or according to technically possible combinations:
Another object of the invention is a non-transitory memory device including instruction codes for implementing the method according to one of the possible combinations of the previous characteristics.
Another object of the invention is an audio/video receiving equipment implementing a method according to one of possible combinations of the previous characteristics.
Another object of the invention is a computer program product comprising instructions which, when the program is executed by a computer, cause the same to implement the steps of the method according to one of possible combinations of the previous characteristics.
Further characteristics and advantages of the invention will appear upon reading the following description, with reference to the appended figures, which illustrate:
For the sake of clarity, identical or similar elements are marked with identical reference marks throughout the figures.
The invention will be better understood upon reading the following description and upon examining the accompanying figures. These are shown by indicating and in no way limiting purposes of the invention.
In this description, when an action is taken by a device, this action is actually made by a microprocessor of said device controlled by instruction codes recorded in a memory of said device. In the same way, if an action is taken by a program, or an application, this action is the result of the implementation of instruction codes by a microprocessor of a device in which the program or application is installed.
A case where the packet size is optional is when all the packets have the same size. An equivalent case is when all the packets have the same size except for one, the last one.
The server 400 is a server compatible with at least the http protocol.
Further to this prompt, the audio/video receiving equipment proceeds to a step 1010 of connecting the first communication interface to the channel the identifier of which is recorded in the configuration zone of the storage means of the audio/video receiving equipment. On this channel, the equipment receives at least two packet types:
Each packet received is structured to enable its type and content to be read. Since the first interface is connected, the audio/video receiving equipment receives and processes all the broadcast packets.
In a step 1020 of receiving a description packet, following the connection step 1010, the audio/video receiving equipment receives a description packet. This is the first description packet broadcast since the connection step. In one alternative, this description packet is structured to contain at least:
In practice, the description packet also includes data relating to a version number of the file described. This enables the audio/video receiving equipment to determine whether the description packet is compatible with itself. The equipment selects for an update only the description packets which are compatible with itself. This selection is carried out, for example, via a model identifier contained in the description packet. This model identifier of the description packet should correspond to a model identifier recorded in the configuration zone. In one alternative, this model identifier is part of a version identifier. For the rest of the description, this version identifier is implicitly used to select the data packets retained among the data packets received via the first interface.
In practice, there are several alternatives to describe a target file in a description file. It is considered, as an example, that the description packet includes:
In one alternative, the header of a data packet includes a size identifier, this identifier referring to a size in a list of sizes. This list of sizes is either known a priori, or transmitted via the description packet.
In yet another alternative, the size of a data packet is known a priori and each data packet has the same size. Thereby, it is sufficient that the description packet contains the size of the target file for the number of data packets to be deduced by simply dividing the size of the target file by the known size of a data packet.
The common feature of all these alternatives is that between data transmitted by the description packet and data known a priori, it is possible, by a simple arithmetic, to calculate the position of a data packet in the target file.
There is also an alternative in which the description file only contains the size of the target file and no other data is known a priori. In this alternative, it is the header of a data packet which includes the position of the data packet in the target file. In this alternative, the header of the data packet also includes the size of the data packet.
It is reminded that the size of a data packet is, in this document, the size of the data contained by this data packet.
Once the description of the target file is known, the principle is therefore that the equipment selects, among the description packets received, the first description packet corresponding thereto. This correspondence relates to the equipment model and the update version. The equipment could possibly filter the update version and choose to only recover a version subsequent to the already installed operating system version. One alternative could be to accept all the versions in the case of an emergency restoration of the equipment as a result, for example, to a corruption of the operating system of the equipment or to a forced update request. At the end of step 1020 of receiving a description packet, the equipment is thus capable of selecting data packets among those received via the first interface. Since this behaviour is comparable with that of the state of the art, in the rest of the description, this selection is considered as implicit and only the identifier of the packet, that is its rank in all the packets forming the update, is considered.
The audio/video receiving equipment then proceeds to a step 1030 of allocating a storage zone. This storage zone is managed by a database. This is a database previously described in connection with the database zone of the storage means of the audio/video receiving equipment.
In the allocation step 1030, the audio/video receiving equipment uses data obtained to calculate the size of the storage zone 120.5 of an update file. This size is obtained by summing the size of each of the packets described by the previously received description packet. If all the packets have the same size, the size of the storage zone is the result of the product of the number of packets by the size of a packet. This case is considered in the rest of the description, each data packet having a size Tp, that is it contains Tp data bytes. In this case, the size of the storage zone of the update file is equal to Mp×Tp in bytes.
In the allocation step 1030, the audio/video receiving equipment also initialises the packet database by associating with each packet identifier, the “not received” or “KO” status. In our example, the data packets are identified by their rank from 1 to Mp. In other example, the rank, thus the identifier, of the packet can be its position, expressed in bytes, in the update file. In other words, it would be a byte offset from the update beginning to the beginning position of the packet.
The audio/video receiving equipment then proceeds to a step 1040 of receiving a first data packet P1 via the first interface. The first data packet, as all the data packets, is structured to include at least the following data:
In this step of receiving a first data packet, the audio/video receiving equipment performs the following actions:
And then, the audio/video receiving equipment initiates two processes which are carried out in parallel:
The entrance to the first process 1050 is a step 1060 of waiting for receipt of a data packet via the first interface. If a data packet is received via the first interface, then it is proceeded to a step 1060 of recording the data packet. Otherwise, one keeps waiting.
In the step 1070 of recording the data packet, the audio/video receiving equipment performs the following actions:
The audio/video receiving equipment then proceeds to a step 1080 in which it checks whether the update file has been fully received. This check is made by making sure that, in the packet database, all the packets have a status being “OK”. If yes, then it is proceeded to a step 2000 of ending receiving the update file, otherwise, it is proceeded to the step 1060 of waiting for receiving a packet.
In the invention, on the update channel, the data packets are broadcast in a decreasing rank order. That is the data packet which will be broadcast after the packet of rank N will be the data packet of rank N−1. The update file is, in some way, broadcast backwards.
The entrance to the second process 1100 is a step 1110 of transmitting a first request, via the second interface, to the delivery server. This request is a request according to the http, or https protocol. The parameters of this request are:
The audio/video receiving equipment then proceeds to a step 1120 in which it receives, as in response to the first request, data via the second interface. These data are data of the update file corresponding to packets of ranks higher than the rank of the first data packet received. The audio/video receiving equipment.
In step 1120 of receiving data via the second interface, the audio/video receiving equipment records data received via the second interface in a storage zone of the update file from a position equal to the download startup position for the request the response of which is received. The packet identifier the status of which is to be updated is deduced from:
In step 1120 of receiving data in response to the first request, the audio/video receiving equipment updates the packet database as it receives data. Each time Tp bytes are received, the audio/video receiving equipment updates the status of the corresponding packet in the packet database. This is a sub-step 1130 of step 1130 of updating the packet database.
The sub-step 1130 of updating the packet database is followed by a sub-step 1140 of checking the end of the file is reached.
If the end of the file is reached, then it is proceeded to a step of transmitting 1141 a second request via the second communication interface to obtain the update file from a request position equal to 0. It is understood that the processings corresponding to the previously active request are interrupted. The processing is then continued in step 1120 of receiving data via the second interface.
If the end of the file is not reached, then it is proceeded to a step 1150 of checking for a cross over between the first process and the second process. This step is optional. If this step is not implemented, then it is proceeded to a step 1180 of checking whether the update file is full or not.
A cross over happened if the current writing position, in the storage zone, of data received via the second interface has been lower than the current writing position, in the storage zone, of data received via the first interface, and if the current writing position, in the storage zone, of data received via the second interface becomes higher than the current writing position, in the storage zone, of data received via the first interface. Actually, it is reminded that the first process records packets towards the beginning of the update file, whereas the second process records packets towards the end of the update file.
If a cross-over took place, it is proceeded to a step 1151 of searching for a missing packet in the packet database. For this search, the audio/video receiving equipment scrolls through the packet database in the increasing rank order to find a packet the status of which is “KO”. Such a packet, found after a cross-over, is a missing packet, that is a packet which has been poorly, or not, received via the first interface. The scrolls begins from the last packet received via the second interface.
If a packet is missing, then it is proceeded to a step 1152 of transmitting a third request via the second communication interface to obtain the update file from a request position equal to the position of the missing packet in the storage zone of the update file. It is understood that the processings corresponding to the previously active request are interrupted. The processing is then continued in step 1120 of receiving data via the second interface.
If no packet is missing, it is proceeded to step 1180 in which the audio/video receiving equipment checks whether the update file has been fully received. This step is identical to step 1080 of the same name for the first process. If the update file is full, then it is proceeded to step 2000 of ending receiving the update file, otherwise, it is proceeded to step 1120 of receiving data via the second interface.
In step 2000 of ending receiving the update file, the audio/video receiving equipment uses the content of the storage zone 120.5 of the update file to update the operating system zone 120.1.
With the invention, it is thus possible to substantially accelerate recovery of an update file of an operating system of an audio/video receiving equipment. Impacts external to the equipment are negligible:
The invention is particularly efficient when both data recovery processes write in opposite directions. In other words, the data are received in a different order on both interfaces. In the exemplary implementation described, the first process writes data received in decreasing order towards the beginning of the file, whereas the second process writes data received in increasing order towards the end of the file. This is the most elegant case because it only involves few modifications at the equipment as well as at the infrastructure.
The principle of the invention is still applicable, if data packets are received in increasing order on the first interface. In this case, the data should be received in reverse order, that is in decreasing order, on the second interface, and they should be written towards the beginning of the file. Such a result can be achieved, for example, by recording the files backwards on the delivery server or by reading them from end to beginning.
The invention is also perfectly operational for recovering any type of file, for example video files.
Number | Date | Country | Kind |
---|---|---|---|
1757999 | Aug 2017 | FR | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2018/070097 | 7/25/2018 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2019/042664 | 3/7/2019 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
5144425 | Joseph | Sep 1992 | A |
6263022 | Chen | Jul 2001 | B1 |
6490705 | Boyce | Dec 2002 | B1 |
6496217 | Piotrowski | Dec 2002 | B1 |
6501797 | van der Schaar | Dec 2002 | B1 |
6674477 | Yamaguchi | Jan 2004 | B1 |
7095782 | Cohen | Aug 2006 | B1 |
7958532 | Paul | Jun 2011 | B2 |
8064389 | Khan | Nov 2011 | B2 |
8072943 | Khan | Dec 2011 | B2 |
8284845 | Kovacevic | Oct 2012 | B1 |
8467656 | Kamio | Jun 2013 | B2 |
8767776 | Bunn | Jul 2014 | B2 |
8904445 | Britt | Dec 2014 | B2 |
9495998 | Asano | Nov 2016 | B2 |
9769230 | Hannuksela | Sep 2017 | B2 |
20020128029 | Nishikawa et al. | Sep 2002 | A1 |
20040208239 | Karlsson | Oct 2004 | A1 |
20070179948 | Jennings, III | Aug 2007 | A1 |
20080062168 | Poullier | Mar 2008 | A1 |
20080170630 | Falik | Jul 2008 | A1 |
20090034629 | Suh | Feb 2009 | A1 |
20090187960 | Lee | Jul 2009 | A1 |
20090222855 | Vare | Sep 2009 | A1 |
20090268806 | Kim | Oct 2009 | A1 |
20100058421 | Hastings et al. | Mar 2010 | A1 |
20100260254 | Kimmich | Oct 2010 | A1 |
20100260268 | Cowan | Oct 2010 | A1 |
20110002397 | Wang | Jan 2011 | A1 |
20110083154 | Boersma | Apr 2011 | A1 |
20110096828 | Chen | Apr 2011 | A1 |
20110164683 | Takahashi | Jul 2011 | A1 |
20110187503 | Costa | Aug 2011 | A1 |
20110239078 | Luby | Sep 2011 | A1 |
20110289542 | Kitazato | Nov 2011 | A1 |
20120096495 | Maysunaga | Apr 2012 | A1 |
20120185907 | Park | Jul 2012 | A1 |
20120224651 | Murakami | Sep 2012 | A1 |
20120250619 | Twitchell, Jr. | Oct 2012 | A1 |
20120320168 | Yun | Dec 2012 | A1 |
20130136193 | Hwang | May 2013 | A1 |
20130305304 | Hwang | Nov 2013 | A1 |
20140050458 | Mochinaga | Feb 2014 | A1 |
20140098289 | Jang | Apr 2014 | A1 |
20140115472 | Mochinaga | Apr 2014 | A1 |
20140119712 | Jang | May 2014 | A1 |
20140204177 | Hattori | Jul 2014 | A1 |
20140211861 | Lee | Jul 2014 | A1 |
20170164033 | Tsukagoshi | Jun 2017 | A1 |
Entry |
---|
International Search Report as issued in International Patent Application No. PCT/EP2018/070097, dated Oct. 9, 2018. |
Number | Date | Country | |
---|---|---|---|
20200351544 A1 | Nov 2020 | US |