Method and device for estimating available transmit bandwidth on a network connection

By dividing data file transmissions into high and low bitrate intervals, the method estimates available bandwidth, ensuring timely transmission and maintaining quality, addressing the challenges of network traffic interference and local storage overflow.

JP2026082676APending Publication Date: 2026-05-19AXIS
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
AXIS
Filing Date
2025-09-16
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

Existing methods for estimating available transmission bandwidth over a network connection are inadequate, particularly when high bitrate transmissions can affect other network traffic and degrade data file quality, and there is a need to transmit data files within a predetermined time without overflowing local storage.

Method used

A method and device that divide the transmission time of data files into alternating high and low bitrate intervals, allowing estimation of available bandwidth based on feedback, ensuring the average bitrate remains below a threshold to minimize impact on other traffic while maintaining data quality.

Benefits of technology

This approach effectively estimates available bandwidth, enabling data files to be transmitted within their creation time without overflowing local storage, while adapting quality based on bandwidth fluctuations to ensure timely transmission and minimize quality degradation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026082676000001_ABST
    Figure 2026082676000001_ABST
Patent Text Reader

Abstract

The present invention provides a method and device for estimating the available transmission bandwidth on a network connection to which a data file will be transmitted within a predetermined transmission time. [Solution] The method determines a minimum average bitrate for a first data file to be transmitted over a network connection, transmits it over the network connection at a bitrate higher than the determined minimum average bitrate during one or more first time intervals, transmits the remaining data of the first data file over the network connection at a bitrate lower than the bitrate during the first time intervals during one or more second time intervals, and estimates the available transmission bandwidth on the network connection based on feedback regarding the transmission of data from the first data file over the network connection during one or more first time intervals at a bitrate higher than the determined minimum average bitrate.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of network connection evaluation. In particular, it relates to a method and a device for estimating the transmission bandwidth available on a network connection.

Background Art

[0002] In some applications such as video surveillance, data files are created in real time. When such files are created by a network-connected device such as a network-connected camera and stored in a remote file storage, the data files need to be transmitted to the remote file storage via the network connection. In order to avoid filling up the local storage or memory within the network-connected device, the data files need to be transmitted at an average bitrate such that the data files are transmitted within the same time as it takes to create the data files.

[0003] However, during some periods, the network connection may not provide a sufficient bitrate to transfer the data files in real time. During such periods, some reduction in the size of the data files may be required, such as by means of higher compression of the data files. On the other hand, compression degrades the quality of the data files. Therefore, it is desirable to track the transmission bandwidth available on the network connection. This can be done, for example, by transmitting the data files at a high bitrate and estimating the available transmission bandwidth based on the feedback information received in relation to the transmission.

[0004] However, when transmitting data files over a network connection, there are usually limitations on the bitrate at which the data files can be transmitted. For example, high bitrate transmissions can affect other traffic within the network. Therefore, transmitting data files at high bitrates to estimate available transmission bandwidth may not always be feasible. Thus, a new method for estimating available transmission bandwidth is desired. [Overview of the project]

[0005] The object of the present invention is to mitigate the above-mentioned problems and to provide a novel method and device for estimating the available transmission bandwidth over a network connection.

[0006] According to a first aspect, a method is provided for estimating the available transmission bandwidth on a network connection for transmitting a data file within a predetermined transmission time at an average bitrate below a bitrate threshold. The method includes determining the data file size of a first data file to be transmitted over the network connection, and dividing the data file size into predetermined transmission time intervals, thereby determining the minimum average bitrate required to transmit the first data file within the predetermined transmission time. The method further includes dividing the transmission time of the first data file into one or more first time intervals and one or more second time intervals, where each of the one or more first time intervals is followed by one or more second time intervals, unless the first time interval is the last time interval. The method further includes transmitting the data of the first data file over the network connection during one or more first time intervals at a bitrate higher than the determined minimum average bitrate, and transmitting the remaining data of the first data file over the network connection during one or more second time intervals at a bitrate lower than the bitrate during one or more first time intervals. The bitrate during one or more second time intervals is such that the average bitrate obtained as a result of data transmission between one or more first time intervals and one or more second time intervals is greater than or equal to a determined minimum average bitrate, but less than a bitrate threshold. The method further includes estimating the available transmit bandwidth on the network connection at a bitrate higher than the determined minimum average bitrate, based on feedback regarding the transmission of data from a first data file over the network connection during one or more first time intervals.

[0007] To ensure that the resulting average bitrate is lower than the bitrate threshold, the bitrate in one or more second time intervals is set lower than the bitrate in one or more first time intervals. This allows one or more first time intervals to be used to probe a network connection using a higher bitrate without affecting other network traffic, which would be the case in the case of transmissions exceeding the bitrate threshold. Specifically, the transmit bandwidth available on the network connection can be estimated based on feedback regarding the transmission of data from a first data file over the network connection during one or more first time intervals, i.e., transmissions higher than the average bitrate.

[0008] Furthermore, transmitting at a higher bitrate over longer time intervals has a greater impact on other traffic than transmitting at a higher bitrate over shorter time intervals. Therefore, dividing the transmission time of the first data file into one or more first time intervals and one or more second time intervals, and transmitting at a higher bitrate during one or more first time intervals than during one or more second time intervals, has less impact on other traffic than if the transmission were performed at a higher bitrate for the entire first data file. This is because the transmission at the higher bitrate occurs at shorter time intervals. Moreover, each of the one or more first time intervals is followed by one or more second time intervals. Thus, the one or more time intervals are spaced apart from each other, with one or more second time intervals having a lower bitrate. Next, the transmission at a higher bitrate during one or more first time intervals can be used to estimate the available transmission bandwidth on the network connection.

[0009] "The minimum average bitrate required to transmit the first data file within a specified transmission time" means the average bitrate required to transmit the first data file precisely within the specified transmission time. An average bitrate higher than the determined minimum average bitrate allows transmission in a shorter time than the specified transmission time, and this specified transmission time is also within the specified transmission time.

[0010] Specifying the periods "First Period" and "Second Period" is intended solely to separate the two periods from each other and not to indicate any arbitrary order of periods. A given transmission period can be divided so that it begins with the Second Period followed by the First Period, or vice versa. Furthermore, a given transmission period can end with either the First Period or the Second Period.

[0011] "The first time interval is the last time interval" means that the data of the first data file transmitted during that first time interval is the last data of the first data file to be transmitted.

[0012] Data files can be created and transmitted sequentially within their respective predetermined transmission times. Each predetermined transmission time is determined based on the time required to create each data file, such that the sum of the predetermined transmission times for each data file equals the sum of the time required to create each data file.

[0013] Therefore, data files are sent within the same time it takes to create them. Consequently, the amount of data in the data files that needs to be stored locally before being sent over the network connection does not increase while the data files are being created.

[0014] Data files can be created with a set quality for each transmission time over the network connection. The method further includes setting a quality for a second data file following the first data file. The quality of the second data file is determined in relation to the quality of the first data file and is based on the estimated available network bandwidth. Specifically, the quality of the second data file is set lower than that of the first data file, provided that the estimated available transmission bandwidth is less than or equal to a first bandwidth threshold. Furthermore, the quality of the second data file is set higher than that of the first data file, provided that the estimated available transmission bandwidth is greater than or equal to a second bandwidth threshold, where the second bandwidth threshold is higher than the first bandwidth threshold. Finally, the quality of the second data file is set to the same quality as the first data file, provided that the estimated available transmission bandwidth is between the first and second bandwidth thresholds. The quality of the data files can be set for each transmission time over the network connection by setting the compression level. If the data files are video files, each containing multiple image frames, the quality of the data files can be set for each transmission time over the network connection by, or in addition to, dropping a subset of image frames, for example, by dropping every nth image frame, thus reducing the frame rate, or by dropping a frame at the end of a group of pictures.

[0015] By reducing the quality of the second data file in response to the estimated available transmission bandwidth being below a first bandwidth threshold, the size of the second data file is adapted so that it can be transmitted within a given transmission time. By improving the quality of the second data file in response to the estimated available transmission bandwidth being above a second bandwidth threshold, a higher quality of the second data file is possible while still allowing the second data file to be transmitted within a given transmission time.

[0016] The data file may be, for example, a media file.

[0017] One or more first time intervals may be shorter than the time threshold. This is beneficial, for example, when the period for which higher bitrates are permitted is limited by the time threshold.

[0018] Each of the one or more second time intervals may be the same length as, or longer than, each of the one or more first time intervals.

[0019] The bitrate in one or more second time intervals may be zero. By reducing the bitrate in one or more second time intervals to zero, it is possible to set a higher bitrate in one or more first time intervals while keeping the resulting average bitrate below the bitrate threshold.

[0020] A given transmission time can be divided into multiple first time intervals and multiple second time intervals, i.e., there are always at least two first time intervals and at least two second time intervals. The more first time intervals there are, the more estimations of available transmission bandwidth can be made.

[0021] According to a second embodiment, a non-temporary computer-readable storage medium is provided which, when executed in a device having at least one processor and transmitter, stores instructions causing the device to execute the method of the first embodiment.

[0022] Any further features of the method of the first embodiment described above also apply to the non-temporary computer-readable storage medium of the second embodiment, where applicable.

[0023] According to a second aspect, a device is provided for estimating the available transmit bandwidth on a network connection for transmitting a data file within a predetermined transmit time at an average bitrate below a bitrate threshold. The device comprises a transmitter and circuitry configured to perform a determination function, a first division function, a second division function, a first transmit function, a second transmit function, and an estimation function. The determination function is configured to determine the data file size of a first data file to be transmitted over a network connection. The first division function determines the minimum average bitrate required to transmit the first data file within a predetermined transmit time by dividing the data file size into predetermined transmit time intervals. The second division function is configured to divide the transmission time of the first data file into one or more first time intervals and one or more second time intervals, wherein each of the one or more first time intervals is followed by one or more second time intervals, unless the first time interval is the last time interval. The first transmit function is configured to cause the transmitter to transmit the data of the first data file over the network connection during one or more first time intervals at a bitrate higher than the determined minimum average bitrate. The second transmission function is configured to cause the transmitter to transmit the remaining data of the first data file over the network connection during one or more second time intervals at a bit rate lower than the bit rate during one or more first time intervals, such that the average bit rate resulting from the transmission of data during one or more first time intervals and one or more second time intervals is greater than or equal to a determined minimum average bit rate but lower than a bit rate threshold. The estimation function is configured to estimate the available transmission bandwidth over the network connection based on feedback regarding the transmission of data from the first data file over the network connection during one or more first time intervals at a bit rate higher than the determined minimum average bit rate.

[0024] Any further features of the method of the first embodiment described above also apply to the device of the third embodiment, where applicable.

[0025] The present invention is not limited to specific components of the described device, nor should the operation of the described method be understood as such devices and methods may vary. It should also be understood that the terms used in this specification are for the purpose of describing only specific embodiments and are not intended to be limiting. As used in this specification and the appended claims, the articles "a", "an", "the", and "said" are to be noted as being intended to mean that one or more elements are present, unless the context clearly indicates otherwise. Thus, for example, a reference to "a unit" or "the unit" may include several devices and the like. Further, the words "comprising", "including", "containing" and similar expressions do not exclude other elements or steps.

[0026] The above and additional objects, features, and advantages of the present invention will be better understood from the following illustrative and non-limiting detailed description of embodiments of the present invention, with reference to the accompanying drawings, in which like reference numerals are used for like elements.

Brief Description of the Drawings

[0027] [Figure 1] It is a flowchart of a method for estimating the transmission bandwidth available on a network connection according to an embodiment. [Figure 2] It schematically shows a device for estimating the transmission bandwidth available on a network connection according to an embodiment.

Modes for Carrying Out the Invention

[0028] Hereinafter, the present invention will be described in more detail with reference to the accompanying drawings showing embodiments of the present invention.

[0029] Embodiments of the present invention are applicable to estimating the available transmit bandwidth over a network connection in several scenarios. For example, the present invention is applicable to a scenario in which data files are created on a network-connected device and transmitted to remote storage via a network connection within the network. In such a scenario, the amount of local storage or memory on the network-connected device may be limited. Therefore, the transmission time for each data file created is preferably less than or equal to the time required to create the data file, in order to avoid the need to increase the amount of local storage before transmission. However, the available transmit bandwidth over a network connection may change over time. If the fluctuations are relatively small and relatively fast, this can be encompassed by transmitting some data files within a shorter transmission time than it took for them to be created, in order to compensate for other data files being transmitted within a longer transmission time than it took for them to be created. If the fluctuations are larger and longer, such as during longer periods of low available transmit bandwidth where the transmission time for data files must be longer than it took to create them, then adaptations to data file creation may be necessary. As an example, measures such as reducing the quality of data files can be taken to reduce the size of newly created data files. Since methods that degrade quality are generally undesirable, it is desirable to estimate the available transmit bandwidth of the network connection to identify when quality can be improved again. At the same time, measures may be needed to avoid the risk of complete data file loss when available transmit bandwidth is low due to local storage becoming full.

[0030] Embodiments of method 100 for estimating the available transmission bandwidth on a network connection for transmitting data files within a predetermined transmission time at an average bitrate below a bitrate threshold are described with reference to the flowchart in Figure 1. The details of the transmission vary depending on the protocol used for the network connection. For example, each data file may be transmitted as a single HTTP request (PUT or POST).

[0031] The predetermined transmission time may vary between scenarios. For example, if method 100 is applied to a network-connected surveillance camera that creates data files in the format of a video file such as an MP4 file, the predetermined transmission time for each video is the length of that video file. The video files may all be the same length or they may be of different lengths.

[0032] In method 100, the data file size for the first data file to be transmitted over the network connection is determined (S110). Next, the minimum average bitrate required to transmit the first data file within a predetermined transmission time is determined by dividing the data file size into predetermined transmission time intervals (S120). Therefore, as long as the first data file is transmitted at an average bitrate equal to or greater than the determined minimum average bitrate, the first data file will be transmitted within the predetermined transmission time.

[0033] In method 100, the data of the first data file is transmitted at different bit rates at different time intervals in the transmission time of the first data file. Specifically, the transmission time of the first data file is alternately divided into one or more first time intervals and one or more second time intervals (S130). That is, unless the time interval is the last time interval in the transmission time of the first data file, a second time interval follows a first time interval, and vice versa. In some embodiments, the transmission time is divided into a plurality of first time intervals and a plurality of second time intervals.

[0034] During one or more first time intervals, the data of the first data file is transmitted over the network connection at a bitrate higher than the determined minimum average bitrate (S140).

[0035] During one or more second time intervals, the remaining data of the first data file is transmitted over the network connection at a bitrate lower than the bitrate during one or more first time intervals (S150). The bitrate during one or more second time intervals is adapted such that the average bitrate resulting from the data transmission during one or more first time intervals and one or more second time intervals is greater than or equal to a determined minimum average bitrate but lower than a bitrate threshold.

[0036] By transmitting data at a higher bitrate during one or more second time intervals than the bitrate during one or more first time intervals, such that the average bitrate obtained during the transmission of the first data file is lower than the bitrate limit, a higher bitrate can be used during one or more time intervals without the average exceeding the bitrate threshold. Then, using each of the higher bitrate transmissions during one or more first time intervals, the available transmit bandwidth on the network connection can be estimated.

[0037] Dividing the transmission time into one or more first time intervals and one or more second time intervals, and using the respective bitrates for each, is equivalent to dividing a data file into one or more first segments and one or more second segments, and using the respective bitrates for the different segments of the data file. For example, transmitting 4 Mbit at 4 Mbit / s first, and then 2 Mbit at 2 Mbit / s, is equivalent to transmitting at 4 Mbit / s for 1 second first, and then at 2 Mbit / s for 1 second.

[0038] Furthermore, transmitting at a higher bitrate over longer time intervals has a greater impact on other traffic than transmitting at a higher bitrate over shorter time intervals. Therefore, dividing the transmission time of the first data file into one or more first time intervals and one or more second time intervals, and transmitting at a higher bitrate during one or more first time intervals than during one or more second time intervals, has less impact on other traffic than if the transmission were performed at a higher bitrate for the entire first data file. This is because the transmissions at higher bitrates occur at shorter time intervals. Next, the available transmission bandwidth on the network connection can be estimated using each of the higher bitrate transmissions during one or more first time intervals.

[0039] Next, the available transmission bandwidth on the network connection is estimated based on feedback regarding the transmission of data from the first data file over the network connection during one or more first time intervals at a bit rate higher than the determined minimum average bit rate (S160).

[0040] For example, the available transmit bandwidth on a network connection can be estimated by first determining the time from when transmission begins during a first time interval until all data transmitted during that first time interval is received by the remote storage as indicated in the acknowledgment message from the remote storage. The estimated available transmit bandwidth is the amount of data transmitted during the first time interval divided by the determined time.

[0041] The bitrate for all of one or more first time intervals may be the same first bitrate that is higher than the determined minimum average bitrate. Alternatively, the bitrate may differ among different of one or more first time intervals, with each of the bitrates for one or more first time intervals being higher than the determined minimum average bitrate.

[0042] Furthermore, the bitrate for all of one or more second time intervals may be the same second bitrate, but lower than the first bitrate or lower than each of the bitrates of one or more first time intervals. Alternatively, the bitrate may differ among different of one or more second time intervals, with each of the bitrates of one or more second time intervals being lower than the first bitrate or lower than each of the bitrates of one or more first time intervals.

[0043] The first time intervals may all have the same duration or may have different durations. Similarly, the second time intervals may all have the same duration or may have different durations. Furthermore, the first and second time intervals may have the same duration or may have different durations.

[0044] In some scenarios, there may be limitations on the length of transmission at higher bitrates, such as the bitrate during one or more first time intervals. Then, based on these limitations, one or more first time intervals can be set to be shorter than the first time threshold.

[0045] There are limitations on how close together periods of higher bitrate transmission can be, such as the bitrate during one or more first time intervals. Then, each of the one or more second time intervals can be set to be the same length as or longer than each of the one or more first time intervals. Additionally or alternatively, one or more second time intervals can be set to be longer than a second time threshold set based on these limitations.

[0046] The bitrate during one or more first time intervals and the bitrate during one or more second time intervals are related in that the average bitrate resulting from data transmission during one or more first time intervals and one or more second time intervals should be greater than or equal to a determined minimum average bitrate. Therefore, the higher the bitrate during one or more first time intervals, the lower the bitrate during one or more second time intervals must be, and / or each of the two second time intervals must be longer for each of the lengths of the two second time intervals.

[0047] In one example, there are the same number of first time intervals as there are second time intervals, with one or more first time intervals each having a length of 1 second, and one or more second time intervals each having a length of 1 second. Next, if the bitrate in one or more first time intervals is set to 1.5 times the determined minimum average bitrate, then for the resulting average bitrate to be equal to or greater than the determined minimum average bitrate, that is, for the first data file to be transmitted within a predetermined transmission time, it is sufficient for the bitrate in one or more second time intervals to be 0.5 times the determined minimum average bitrate. Alternatively, if the bitrate in one or more first time intervals is set to 2 times the determined minimum average bitrate, then for the resulting average bitrate to be equal to or greater than the determined minimum average bitrate, that is, for the first data file to be transmitted within a predetermined transmission time, it is sufficient for the bitrate in one or more second time intervals to be zero.

[0048] In another example, there are the same number of first time intervals as there are second time intervals, and the bitrate in one or more first time intervals is set to three times the determined minimum average bitrate, with one or more first time intervals each having a length of 1 second and one or more second time intervals each having a length of 3 seconds. Then, in order for the resulting average bitrate to be equal to or greater than the determined minimum average bitrate, i.e., for the first data file to be transmitted within a predetermined transmission time, it is sufficient for the bitrate in one or more second time intervals to be 1 / 3 of the minimum average bitrate. Alternatively, if each of the second time intervals is 5 seconds long, in order for the resulting average bitrate to be equal to or greater than the determined minimum average bitrate, i.e., for the first data file to be transmitted within a predetermined transmission time, it is sufficient for the bitrate in one or more second time intervals to be 2 / 5 of the minimum average bitrate.

[0049] In this embodiment, data files are created and transmitted sequentially within their respective predetermined transmission times. Each predetermined transmission time is determined based on the time required to create each data file, such that the sum of the predetermined transmission times for each data file equals the sum of the time required to create each data file.

[0050] Therefore, data files are sent within the same time it takes to create them. Consequently, the amount of data in the data files that needs to be stored locally before being sent over the network connection does not increase while the data files are being created.

[0051] The time required to create each data file, and therefore the predetermined transmission time for each, may be the same for all data files, or it may differ between data files.

[0052] For example, in a scenario where the data file is a video file captured by a surveillance camera to be sent to remote storage over a network connection, a video file containing the same length of video can be created and then sent over the network connection within the same predetermined transmission time.

[0053] According to Method 100, an estimate of the available transmit bandwidth is provided based on the transmission of a first data file. This estimate can then be used to determine whether the available transmit bandwidth is sufficient to transmit subsequent data files within a given transmit time. If not, it may be necessary to reduce the size of one or more subsequent data files to avoid the loss of subsequent data files due to local storage becoming full before all subsequent data files have been transmitted. Similarly, this estimate can be used to determine whether the available transmit bandwidth is sufficient to transmit data files without reducing their size. If so, the size of one or more subsequent data files can be transmitted without reduction.

[0054] Therefore, in this embodiment, data files are created with a quality set for each transmission time over the network connection. The quality is set based on the available transmission bandwidth estimated based on the transmission of the previous data file. Furthermore, the image quality is set in relation to the previous data file. This is to ensure that the data file is transmitted within a predetermined transmission time for that data file. Thus, for the second data file following the first data file, the quality is set with respect to the quality of the first data file based on the estimated available transmission bandwidth (S170). Specifically, the quality of the second data file is set lower than that of the first data file, provided that the estimated available transmission bandwidth is less than or equal to a first bandwidth threshold. Furthermore, the quality of the second data file is set higher than that of the first data file, provided that the estimated available transmission bandwidth is greater than or equal to a second bandwidth threshold, and the second bandwidth threshold is higher than the first bandwidth threshold. Finally, the quality of the second data file is set to be equivalent to that of the first data file, provided that the estimated available transmission bandwidth is between the first and second bandwidth thresholds.

[0055] In other embodiments, the quality is set based on the available transmission bandwidth estimated based on the transmission of the previous data file, regardless of the previous data file. This is to ensure that each data file can be transmitted within a predetermined transmission time based on the estimated available transmission bandwidth. Therefore, for a second data file following a first data file, the quality is set based on the estimated available transmission bandwidth such that the size of the second data file based on the set quality is a size that can be transmitted within a predetermined transmission time based on the estimated available transmission bandwidth (S170).

[0056] In some embodiments, the quality of the data file is set for each transmission time over the network connection by setting the compression level. By increasing the compression, the size of the data file is reduced, making it possible to transmit it within a given transmission time even if the available transmission bandwidth is limited.

[0057] In a scenario where the data file is a video file, each containing multiple image frames, the quality of the data file can be set by dropping a subset of the image frames. Dropping a subset of image frames reduces the size of the data file, allowing it to be transmitted within a given transmission time, even if the available transmission bandwidth is limited. For example, to reduce the size of the video file, an image frame every nth or a specific type of image frame may be dropped, or the last image frame of a group of pictures may be dropped.

[0058] In addition to being a video file, a data file can be any type of media file, such as an audio file or a video file that includes audio.

[0059] Method 100 relates to the transmission of a first data file to be transmitted within a predetermined transmission time. The resulting average bitrate can be higher than a determined minimum average bitrate. Therefore, the transmission of the first data file may take less time than the predetermined transmission time, as long as the resulting average bitrate is below a bitrate threshold. This may also be true for other data files being transmitted.

[0060] In general, method 100 can be used for data files that are transmitted within a predetermined transmission time on average. For one or more other data files, the transmission of each other data file can take longer than the predetermined transmission time. However, in order to avoid filling up the local storage, the transmission of one or more data files that takes longer than the predetermined transmission time should be followed by the transmission of one or more data files that take shorter than the predetermined transmission time.

[0061] Figure 2 shows a block diagram of an embodiment of device 500 for estimating the available transmit bandwidth on a network connection for transmitting a data file within a predetermined transmit time at an average bitrate below a bitrate threshold. Device 500 may be, for example, a camera, may be included in a camera, or may be connected to a camera.

[0062] Device 200 includes a transmitter 210 and a circuit 220. The circuit 220 is configured to perform the functions of device 200. The circuit 220 may include a processor 222, such as a central processing unit (CPU), graphics processing unit (GPU), tensor processing unit (TPU), microcontroller, or microprocessor. The processor 222 is configured to execute program code. The program code may be configured to perform the functions of device 200, for example.

[0063] Device 200 may further include memory 230. Memory 230 may be one or more of a buffer, flash memory, hard drive, removable media, volatile memory, non-volatile memory, random access memory (RAM), or another suitable device. In a typical configuration, memory 230 may include non-volatile memory for long-term data storage and volatile memory that functions as device memory for circuit 220. Memory 230 can exchange data with circuit 220 via a data bus. Accompanying control lines and address buses may also exist between memory 230 and circuit 220.

[0064] The functions of device 200 can be stored in a non-temporary computer-readable medium of device 200 (e.g., memory 230) and embodied in the form of executable logical routines (e.g., lines of code, software programs, etc.) executed by circuit 220 (e.g., using processor 222). Furthermore, the functions of device 200 may be standalone software applications or may form part of a software application that performs additional tasks related to device 500. The described functions can be thought of as being configured to be executed by a processing unit, e.g., the processor 222 of circuit 220. Also, while the described functions can be implemented in software, such functionality can also be performed through dedicated hardware or firmware, or any combination of hardware, firmware and / or software.

[0065] Circuit 220 is configured to perform a first determination function 231, a first division function 232, a second division function 233, a first transmission function 234, a second transmission function 235, and an estimation function 236. Circuit 220 is also optionally configured to perform a setting function 237.

[0066] The determination function 231 is configured to determine the data file size of a first data file to be transmitted over the network connection.

[0067] The first splitting function 232 determines the minimum average bitrate required to transmit the first data file within a predetermined transmission time by dividing the data file size into predetermined transmission time segments.

[0068] The second splitting function 233 is configured to split the transmission time of the first data file into one or more first time intervals and one or more second time intervals, wherein each of the one or more first time intervals is followed by one or more second time intervals, unless the first time interval is the last time interval.

[0069] The first transmission function 234 is configured to cause the transmitter to transmit data from a first data file over a network connection at a bit rate higher than a determined minimum average bit rate during one or more first time intervals.

[0070] The second transmission function 235 is configured to cause the transmitter to transmit the remaining data of the first data file over the network connection during one or more second time intervals at a bit rate lower than the bit rate during one or more first time intervals, such that the bit rates during one or more second time intervals are such that the average bit rate of data transmission during the resulting one or more first time intervals and one or more second time intervals is greater than or equal to a determined minimum average bit rate but less than a bit rate threshold.

[0071] The estimation function 236 is configured to estimate the available transmit bandwidth on the network connection based on feedback regarding the transmission of data from a first data file over the network connection during one or more first time intervals at a bitrate higher than the determined minimum average bitrate.

[0072] Data files can be created with a set quality for each transmission time over the network connection. The circuit is further configured to perform a setting function 237. The setting function 237 is configured to set the quality of a second data file following a first data file, the quality of the second data file being determined with respect to the quality of the first data file and based on the estimated available transmission bandwidth. Specifically, the quality of the second data file is set lower than that of the first data file, provided that the estimated available transmission bandwidth is less than or equal to a first bandwidth threshold. Furthermore, the quality of the second data file is set higher than that of the first data file, provided that the estimated available transmission bandwidth is greater than or equal to a second bandwidth threshold, where the second bandwidth threshold is higher than the first bandwidth threshold. Finally, the quality of the second data file is set to the same quality as the first data file, provided that the estimated available transmission bandwidth is between the first and second bandwidth thresholds.

[0073] Any further features of the method of the first embodiment described above also apply to the non-temporary computer-readable storage medium of the second embodiment, where applicable.

[0074] The detailed description of the operation of Method 100 described above in relation to Figure 1 also applies to the corresponding function of Device 200. Furthermore, any optional additional features of Method 100 described above in relation to Figure 1 also apply to Device 200, where applicable.

[0075] Those skilled in the art will understand that the embodiments described above can be modified in many ways, and that the advantages of the present invention as shown in the embodiments can still be used. Therefore, the present invention should not be limited to the embodiments shown, but should be defined solely by the appended claims. Additionally, the embodiments shown can be combined as those skilled in the art will understand.

Claims

1. A method for estimating the available transmission bandwidth on a network connection during a predetermined transmission time, wherein a data file is transmitted at an average bitrate below a bitrate threshold, the method being: Determining the data file size of the first data file transmitted via the aforementioned network connection, The data file size is divided into predetermined transmission times, thereby determining the minimum average bitrate required to transmit the first data file within the predetermined transmission time. The transmission time of the first data file is divided into one or more first time intervals and one or more second time intervals, wherein, unless the first time interval is the last time interval, each of the one or more first time intervals is followed by a second time interval from the one or more second time intervals. During one or more first time intervals, the data of the first data file is transmitted over the network connection at a bitrate higher than the determined minimum average bitrate. Transmitting the remaining data of the first data file over the network connection during one or more second time intervals at a bit rate lower than the bit rate during one or more first time intervals, wherein the bit rate during one or more second time intervals is such that the average bit rate resulting from the transmission of data during one or more first time intervals and one or more second time intervals is greater than or equal to the determined minimum average bit rate, but less than the bit rate threshold. A method comprising estimating the available transmission bandwidth over the network connection based on feedback regarding the transmission of data of the first data file over the network connection during one or more first time intervals at a bit rate higher than the minimum average bit rate determined.

2. The method according to claim 1, wherein the data files are created and transmitted sequentially within their respective predetermined transmission times, and each predetermined transmission time is determined based on the time required to create each data file such that the sum of the respective predetermined transmission times for each data file is equal to the sum of the time required to create each data file.

3. The aforementioned data files are created with a quality set for each transmission time over the network connection. The process further includes setting the quality of a second data file following the first data file, wherein the quality of the second data file is based on the available transmission bandwidth determined and estimated in relation to the quality of the first data file, thereby Provided that the estimated available transmission bandwidth is less than or equal to the first bandwidth threshold, a lower quality than the quality of the first data file is set for the second data file. Provided that the estimated available transmission bandwidth is greater than or equal to a second bandwidth threshold which is higher than the first bandwidth threshold, a higher quality is set for the second data file than for the first data file, and the second bandwidth threshold is higher than the first bandwidth threshold. The method according to claim 1, wherein, on the condition that the estimated available transmission bandwidth is between the first bandwidth threshold and the second bandwidth threshold, the second data file is given the same quality as the first data file.

4. The method according to claim 3, wherein the quality of the data file is set for each transmission time over the network connection by setting a compression level.

5. The method according to claim 3, wherein each data file is a video file containing multiple image frames, and the quality of the data files is set for each transmission time over the network connection by dropping a subset of the image frames.

6. The method according to claim 1, wherein the data file is a media file.

7. The method according to claim 1, wherein the one or more first time intervals are shorter than a time threshold.

8. The method according to claim 1, wherein each of the one or more second time intervals is the same length as or longer than each of the one or more first time intervals.

9. The method according to any one of claims 1 to 8, wherein a predetermined transmission time is divided into a plurality of first time intervals and a plurality of second time intervals.

10. A non-temporary computer-readable storage medium that, when executed in a device having at least one processor and a transmitter, stores instructions causing the device to perform the method according to claim 1.

11. A device for estimating the available transmission bandwidth on a network connection to which a data file is transmitted within a predetermined transmission time at an average bitrate below a bitrate threshold, wherein the device Transmitter and, The circuit comprises, A determination function configured to determine the data file size of a first data file transmitted via the aforementioned network connection, A first division function is configured to divide the data file size into predetermined transmission times, thereby determining the minimum average bitrate required to transmit the first data file within the predetermined transmission time. A second splitting function configured to divide the transmission time of the first data file into one or more first time intervals and one or more second time intervals, wherein, unless the first time interval is the last time interval, each of the one or more first time intervals is followed by a second time interval from the one or more second time intervals, The transmitter is configured to transmit data from the first data file over the network connection at a bit rate higher than the determined minimum average bit rate during one or more first time intervals, A second transmission function configured to cause the transmitter to transmit the remaining data of the first data file over the network connection during one or more second time intervals at a bit rate lower than the bit rate during one or more first time intervals, wherein the bit rate during one or more second time intervals is such that the average bit rate resulting from the transmission of data during one or more first time intervals and one or more second time intervals is greater than or equal to the determined minimum average bit rate, but less than the bit rate threshold. An estimation function configured to estimate the available transmission bandwidth over the network connection based on feedback regarding the transmission of data of the first data file over the network connection during one or more first time intervals at a bit rate higher than the minimum average bit rate determined above, A device configured to perform the following actions.

12. The device according to claim 11, wherein the data files are created and transmitted sequentially within their respective predetermined transmission times, and the respective predetermined transmission times are determined based on the time required to create each data file such that the sum of the respective predetermined transmission times for each data file equals the sum of the time required to create each data file.

13. The aforementioned data files are created with a quality set for each transmission time over the network connection. The aforementioned circuit is It is further configured to perform a configuration function configured to set the quality of a second data file following the first data file, wherein the quality of the second data file is based on the available transmission bandwidth determined and estimated in relation to the quality of the first data file, thereby, Provided that the estimated available transmission bandwidth is less than or equal to the first bandwidth threshold, a lower quality than the quality of the first data file is set for the second data file. Provided that the estimated available transmission bandwidth is greater than or equal to a second bandwidth threshold which is higher than the first bandwidth threshold, a higher quality is set for the second data file than for the first data file, and the second bandwidth threshold is higher than the first bandwidth threshold. The device according to claim 11, wherein the estimated available transmission bandwidth is between the first bandwidth threshold and the second bandwidth threshold, and the second data file is given the same quality as the first data file.

14. The device according to claim 11, wherein the data file is a media file.

15. The device according to claim 11, wherein the one or more first time intervals are shorter than a time threshold.