Data transmission device and control method thereof

JP7610567B2Active Publication Date: 2025-01-08CANON KK
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2022208802
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-12-26
Publication Date
2025-01-08
Estimated Expiration
2042-12-26

AI Technical Summary

Benefits of technology

【0007】 本発明によれば、データ送信における適切な転送レートを決定可能とする技術を提供することができる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007610567000001
    Figure 0007610567000001
  • Figure 0007610567000002
    Figure 0007610567000002
  • Figure 0007610567000003
    Figure 0007610567000003
Patent Text Reader

Abstract

To determine an appropriate transfer rate in data transmission.SOLUTION: A data transmission device comprises: transmission means that transmits stream data to a receiving device via a network; acquisition means that acquires statistical information on the network; determination means that determines a first threshold that is the permissible amount of data to be buffered on the network; and transmission control means that, when the data amount of the stream data buffered on the network exceeds the first threshold while the transmission means transmits the stream data at a first transfer rate, stops the transmission of the stream data performed by the transmission means and resumes the transmission of the stream data performed by the transmission means at a second transfer rate lower than the first transfer rate. The determination means determines the first threshold based on the statistical information acquired by the acquisition means while the transmission means transmits the stream data.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a technique for controlling a transfer rate in data transfer. [Background technology]

[0002] When streaming video in real time over a network, the bandwidth may be limited due to network congestion, which may cause video distortion or stoppage. To address this issue, a technology called adaptive bit rate (ABR) is used, which dynamically controls the transfer rate according to the network situation (such as changes in bandwidth). ABR is realized, for example, by utilizing network statistics. For example, Secure Reliable Transport (SRT), which is one of the video transmission protocols, acquires network statistics and dynamically controls the transfer rate based on the acquired statistics, thereby achieving high safety, reliability, and connectivity. Network statistics include the number of packets sent and received, the number of retransmitted packets, the network bandwidth, and round trip time (RTT). Patent Document 1 also discloses a method of calculating the amount of data buffered on the network and controlling the transfer rate based on the difference from a predetermined target value. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Publication No. 11-308271 Summary of the Invention [Problem to be solved by the invention]

[0004] However, the performance of ABR varies depending on how the obtained statistical information is used. For example, in Patent Document 1, good results are obtained for gradual bandwidth restrictions, but the transfer rate change cannot keep up with sudden bandwidth restrictions, which may cause video distortion or long pauses.

[0005] The present invention has been made in consideration of such problems, and has an object to provide a technique that makes it possible to determine an appropriate transfer rate for data transmission. [Means for solving the problem]

[0006] In order to solve the above-mentioned problems, a data transmission device according to the present invention has the following configuration. A transmitting means for transmitting stream data to a receiving device via a network; acquiring means for acquiring statistical information regarding the network; determining means for determining a first threshold value related to an amount of data buffered on the network; When the amount of the stream data buffered on the network exceeds the first threshold while the transmission means is transmitting the stream data at a first transfer rate, The first transfer rate The stream data Send and transmitting the data by the transmitting means at a second transfer rate lower than the first transfer rate. Rus a transmission control means for resuming transmission of the stream data; Equipped with The determining means determines the first threshold value based on statistical information obtained by the obtaining means while the transmitting means is transmitting the stream data. death, The transmitting means transmits the stream data as packets, The determining means derives the number of packets for which no response has been received from among the packets transmitted by the transmitting means from the statistical information, and determines the first threshold value based on the number. . Effect of the Invention

[0007] According to the present invention, it is possible to provide a technique that makes it possible to determine an appropriate transfer rate for data transmission. [Brief description of the drawings]

[0008] [Figure 1] FIG. 1 is a diagram showing the overall configuration of a system. [Diagram 2] FIG. 2 is a block diagram showing the internal configuration of the camera. [Diagram 3] FIG. 2 is a block diagram showing an internal configuration of a client device. [Figure 4] 13 is a flowchart showing a process for controlling a decrease in a transfer rate. [Diagram 5] 13 is a flowchart showing an increase control of a transfer rate. [Figure 6] 10 is a flowchart showing the determination of a first threshold value. [Figure 7] 11 is a flowchart showing a control for decreasing a transfer rate (second embodiment). DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0009] Hereinafter, the embodiments will be described in detail with reference to the attached drawings. Note that the following embodiments do not limit the invention according to the claims. Although the embodiments describe a number of features, not all of these features are essential to the invention, and the features may be combined in any manner. Furthermore, in the attached drawings, the same reference numbers are used for the same or similar configurations, and duplicated descriptions are omitted.

[0010] (First embodiment) As a first embodiment of the data transmission device according to the present invention, a camera that transmits video data to a client device will be described below as an example. Note that the data to be transmitted is not limited to video data, and can be any data transmitted in the form of a stream.

[0011] <System and device configuration> 1 is a diagram showing the overall configuration of the system. The system is made up of a camera 1000, a client device 2000, and a network 3000. The camera 1000 can transmit video data to the client device 2000 via the network 3000.

[0012] 2 is a block diagram showing the internal configuration of the camera 100. The control unit 1001 controls the entire information processing device. The control unit 1001 is composed of, for example, a central processing unit (CPU) and an application specific integrated circuit (ASIC). The memory unit 1002 is mainly used as a storage area for various data such as a storage area for programs executed by the control unit 1001 and a work area during program execution. The memory unit 1002 is composed of, for example, a random access memory (RAM), a read only memory (ROM), various storages (HDD, SSD), etc.

[0013] The imaging unit 1003 captures an image of a subject, converts the acquired analog signal into digital data, and outputs the captured image to the storage unit 1002. The communication unit 1004 is a transmitting unit that transmits video data and various setting values ​​to the client device 2000 using a predetermined video transmission protocol, and is also a receiving unit that receives various setting values ​​and confirmation responses. The communication unit 1004 sequentially transmits stream data such as video data as packets. The transfer rate control unit 1005 performs transmission control to control the transfer rate when transmitting video data to the client device 2000 according to the network situation. The transfer rate control unit 1005 controls the transfer rate using various information acquired by the communication unit 1004, as will be described in detail later.

[0014] 3 is a block diagram showing the internal configuration of the client device 2000. The control unit 2001 controls the entire client device 2000. The control unit 2001 is configured, for example, by a CPU, an ASIC, etc. The memory unit 2002 is mainly used as a storage area for various data such as a storage area for programs executed by the control unit 2001 and a work area during program execution. The memory unit 1002 is configured, for example, by a RAM, a ROM, an HDD, an SSD, etc.

[0015] The output unit 2003 displays a screen that provides various information to the user of the client device 2000. The output unit 2003 is configured, for example, with a liquid crystal display (LCD), an organic light emitting display (OLED), or the like, and displays, as information, for example, a setting screen for a graphical user interface (GUI) or the like, and an image received from the camera 1000.

[0016] The input unit 2004 receives operations from the user and notifies the control unit 2001. The input unit 2004 is composed of, for example, buttons, a cross key, a touch panel, a mouse, etc., and receives operations from the user via, for example, the above-mentioned GUI.

[0017] A communication unit 2005 receives video data and each setting value from the camera 1000 and transmits each setting value, an acknowledgement, etc., via the network 3000. In the following description, it is assumed that SRT is used as the video transmission protocol, but other protocols may also be used.

[0018] <Device Operation> The control of the transfer rate performed by the camera 1000 will be described below with reference to Figures 4 and 5. In the first embodiment, after starting the transmission of a transmission frame of video data, if the amount of data buffered on the network becomes large, the transmission of the transmission frame is stopped. After that, the transmission of the transmission frame is resumed at the minimum transfer rate, and the transfer rate is then increased.

[0019] 4 is a flowchart showing the transfer rate decrease control performed by the camera 1000. The decrease control is executed after the camera 1000 starts distributing video to the client device 2000 at an arbitrary target transfer rate.

[0020] In S4001, the transfer rate control unit 1005 starts acquiring the number of transmission frames (packets) for which a corresponding ACK (acknowledgement response) has not been received, among the transmission frames (packets) transmitted by the communication unit 1004. Hereinafter, the number of such packets is referred to as the "number of packets waiting for ACK." For example, the number of packets waiting for ACK can be acquired from network statistical information acquired by the SRT function of the communication unit 1004. The information on the number of packets waiting for ACK makes it possible to estimate the amount of video data buffered on the network. Hereinafter, the transfer rate control unit 1005 periodically acquires the number of packets waiting for ACK.

[0021] In S4002, the transfer rate control unit 1005 judges whether or not the period during which the number of packets waiting for ACK is equal to or greater than the first threshold (or exceeds the first threshold) continues for a predetermined time or more while the communication unit 1004 is transmitting packets. For example, the judgment is made at the timing when a new number of packets waiting for ACK is acquired. If it is judged that the period during which the number of packets waiting for ACK is equal to or greater than the first threshold continues for a predetermined time or more, it is judged that there is a possibility that the distributed video may be disturbed or stopped, and the process proceeds to S4003. Note that, although details will be described later, the first threshold is a value that is updated at regular intervals, for example, and is a value that indicates the allowable amount of data buffered on the network.

[0022] In S4003, the transfer rate control unit 1005 stops the transmission of video data by the communication unit 1004. This is because the result of S4002 being Yes occurs when, for example, the network bandwidth is restricted.

[0023] In S4004, the transfer rate control unit 1005 judges whether the number of packets waiting for ACK has fallen below a second threshold value that is determined in advance. For example, the judgment is performed at the timing when a new number of packets waiting for ACK is acquired. If the number of packets waiting for ACK has fallen below the second threshold value, the process proceeds to S4005.

[0024] In S4005, the transfer rate control unit 1005 reduces the transfer rate to the lowest value that can be set, and resumes the transmission of video data by the communication unit 1004. Note that the larger the value of the second threshold described above is set, the shorter the time required to resume transmission. However, if the value is too large, it will take time for packets to flow smoothly because transmission is resumed in a state where there are many packets waiting for ACK. For this reason, the second threshold may be determined based on the allowable time required to resume transmission. The lowest value that can be set is, for example, the lowest transfer rate included in multiple transfer rates that are preset at the time of product shipment according to the performance and specifications of the camera 1000.

[0025] FIG. 5 is a flowchart showing the control of increasing the transfer rate performed by the camera 1000. In S5001, the transfer rate control unit 1005 starts acquiring the number of packets waiting for ACK and the estimated bandwidth. For example, this information can be acquired from network statistical information acquired by the SRT function of the communication unit 1004. After that, the transfer rate control unit 1005 periodically acquires the number of packets waiting for ACK and the estimated bandwidth.

[0026] In S5002, the transfer rate control unit 1005 judges whether or not condition 1 "the period during which the number of packets waiting for ACK is less than the first threshold continues for a predetermined time or more" and condition 2 "the transfer rate is less than the estimated bandwidth" is satisfied. If both conditions 1 and 2 are satisfied, it is judged that the current transfer rate has a margin for the network bandwidth, and the process proceeds to S5003.

[0027] In S5003, the transfer rate control unit 1005 determines whether the current transfer rate is less than the target transfer rate. If the current transfer rate is less than the target transfer rate, the process proceeds to S5003. Note that the target transfer rate is, for example, the transfer rate when the camera 1000 starts transmitting the current stream data. However, a separate transfer rate may be set as the target transfer rate.

[0028] In S5004, the transfer rate control unit 1005 determines a transfer rate (increased transfer rate) higher than the current transfer rate, within a range that does not exceed the estimated bandwidth. The transfer rate is determined by selecting available transfer rates in ascending order and gradually increasing them, taking into consideration the possibility that the network bandwidth may be restricted again after transfer is resumed at the increased transfer rate. However, other methods, such as using a preset transfer rate, may also be used.

[0029] 6 is a flowchart showing the determination of the first threshold value performed by the camera 1000. This process is performed in parallel with the transmission of video data (including the processes in FIGS. 4 and 5).

[0030] Specifically, a "temporary threshold" is determined at regular intervals in response to changes in the network bandwidth. The "first threshold" is determined by adding a fixed value to the temporary threshold in response to changes in the number of packets buffered on the network. Note that immediately after the camera 1000 is turned on and started up, a threshold that is preset at the time of product shipment, for example, is set.

[0031] In S6001, the transfer rate control unit 1005 acquires the current number of packets waiting for ACK and the number of packets in the current transmission frame. For example, this information can be acquired from network statistical information acquired by the SRT function of the communication unit 1004.

[0032] In S6002, the transfer rate control unit 1005 judges whether or not a fixed period of time has elapsed. If the fixed period of time has elapsed, the process proceeds to S6003, and if not, the process proceeds to S6005. Note that the value of the fixed period can be determined arbitrarily, but it is preferable that the value be longer than the period for acquiring network statistical information (e.g., 1 second) and shorter than the typical time scale of network bandwidth fluctuations (e.g., 10 minutes).

[0033] In S6003, the transfer rate control unit 1005 determines the maximum number of packets awaiting ACK acquired during a period until the fixed cycle has elapsed as a provisional threshold. Then, in S6004, the transfer rate control unit 1005 sets the number of packets of the transmission frame when the maximum number of packets awaiting ACK acquired is acquired as the "first number of packets." In other words, the first number of packets is the number of packets of the transmission frame corresponding to the maximum number of packets awaiting ACK during the period when the previous provisional threshold was used.

[0034] In S6005, the transfer rate control unit 1005 sets the first threshold value to a tentative threshold value obtained by subtracting the first number of packets from the current number of transmitted frame packets until a fixed period of time has elapsed.

[0035] In this way, by determining the provisional threshold at regular intervals, the threshold can be determined according to the constantly changing network bandwidth. Also, by adding a value obtained by subtracting the first number of packets from the number of packets in the current transmission frame to the provisional threshold, the threshold can also be varied. That is, even if the number of packets in the transmission frame varies due to changes in the amount of video movement or fluctuations in the transfer rate, and the number of packets waiting for ACK varies, the threshold can also be varied accordingly.

[0036] In the above description, the first threshold is determined based on the number of packets buffered on the network, but it may be determined based on other information. For example, it may be determined based on the change in the number of packets over time. For example, in the case of compressed video using inter-frame prediction, the number of I-frame packets is relatively large during a period in which the video changes little. Therefore, the first threshold is determined based on the number of I-frame packets per unit time. Alternatively, it may be determined based on the change in the transfer rate over time. For example, the first threshold is increased by a certain value every time the transfer rate is increased by a certain value. Also, instead of using the maximum number of packets waiting for ACK as the "provisional threshold", the maximum number of packets waiting for ACK plus an appropriate certain value may be used as the "provisional threshold".

[0037] As described above, according to the first embodiment, the transfer rate of data transmission is controlled based on statistical information on the network used for data transmission. In particular, a tentative threshold is determined at regular intervals, and a first threshold used for controlling the transfer rate is updated. This makes it possible to determine a transfer rate that is adaptive to the bandwidth of the network. In particular, even if a sudden bandwidth restriction (fluctuation in the available bandwidth) occurs, it is possible to reduce the possibility of the distribution video being distorted or stopped.

[0038] Second embodiment In the second embodiment, after starting transmission of video data, if the amount of video data buffered on the network becomes large, the transmission of video data is stopped. After that, a mode in which the transfer rate is gradually lowered and transmission is resumed will be described. Note that the overall configuration of the system and the internal configurations of the camera 1000 and the client device 2000 are the same as those in the first embodiment (FIGS. 1 to 3), and therefore description thereof will be omitted. Also, the same processing as that in the first embodiment (FIG. 6) can be performed for setting the first threshold value.

[0039] <Device Operation> Fig. 7 is a flowchart showing the transfer rate decrease control performed by the camera 1000 in the second embodiment. The decrease control is executed after the camera 1000 starts distributing video at an arbitrary target transfer rate to the client device 2000. S4001 to S4004 in Fig. 7 are the same as those in the first embodiment (S4001 to S4004 in Fig. 4), and therefore description thereof will be omitted.

[0040] After the transmission of video data is stopped in S4003, if the number of packets waiting for ACK becomes smaller than the second threshold in S4004, the process proceeds to S7001.

[0041] In S7001, the transfer rate control unit 1005 lowers the transfer rate by a fixed value and resumes the transmission of video data by the communication unit 1004. Then, the process proceeds to S4002. Note that the fixed value is, for example, a transfer rate that is one step (or a predetermined step) lower than the current transfer rate included in a plurality of transfer rates that are preset at the time of product shipment according to the performance and specifications of the camera 1000.

[0042] That is, even if there is a possibility that the transmission rate after being lowered by a certain value will cause distortion or stoppage of the transmission video, the process of Fig. 7 is repeatedly executed, and the transmission rate is lowered by a certain value again in S7001. By repeatedly executing S7001, the transmission rate is gradually lowered, and finally, it is lowered to a value at which transmission without distortion or stoppage is possible.

[0043] Therefore, the smaller the above-mentioned constant value (amount of decrease) is, the higher the final transfer rate will be, but if it is too small, it will take time for the transfer rate to decrease completely, and the time that the video freezes may be extended.

[0044] As described above, according to the second embodiment, by gradually lowering the transfer rate and restarting transmission, it is possible to suppress abrupt fluctuations in image quality in the client device.

[0045] The disclosure of this specification includes the following data transmission device, control method, and program. (Item 1) A transmitting means for transmitting stream data to a receiving device via a network; acquiring means for acquiring statistical information regarding the network; a determining means for determining a first threshold, which is an allowable amount of data to be buffered on the network; a transmission control means for, when an amount of the stream data buffered on the network exceeds the first threshold while the transmission means is transmitting the stream data at a first transfer rate, stopping the transmission of the stream data by the transmission means and resuming transmission of the stream data by the transmission means at a second transfer rate lower than the first transfer rate; Equipped with The determining means determines the first threshold value based on statistical information obtained by the obtaining means while the transmitting means is transmitting the stream data. A data transmission device comprising: (Item 2) the transmitting means sequentially transmits the stream data as packets; The determining means calculates, from the statistical information, the number of packets for which no corresponding acknowledgement has been received among the packets transmitted by the transmitting means, and determines the first threshold value based on the calculated number. 2. The data transmission device according to item 1, (Item 3) The transmission control means resumes transmission of the stream data by the transmission means when an amount of the stream data buffered on the network falls below a second threshold value after the transmission of the stream data by the transmission means is stopped. 3. The data transmission device according to item 1 or 2. (Item 4) The second threshold is determined based on an allowable time from the stop to the restart of the transmission of the stream data by the transmission means. 4. The data transmission device according to item 3, (Item 5) the second transfer rate is a minimum transfer rate that the transmitting means can use to transmit the stream data; The transmission control means, after restarting the transmission of the stream data by the transmitting means at the second transfer rate, increases the transfer rate of the stream data by the transmitting means in a stepwise manner. 5. The data transmission device according to any one of items 1 to 4, (Item 6) the statistical information includes an estimated bandwidth of the network; The transmission control means increases the transfer rate within a range not exceeding the estimated bandwidth. 6. The data transmission device according to item 5, (Item 7) the second transfer rate is a transfer rate lower than the first transfer rate among a plurality of rates that the transmitting means can use to transmit the stream data; The transmission control means, after restarting the transmission of the stream data by the transmitting means at the second transfer rate, gradually reduces the transfer rate of the stream data by the transmitting means. 5. The data transmission device according to any one of items 1 to 4, (Item 8) A method for controlling a data transmission device having a transmission unit that transmits stream data to a receiving device via a network, comprising: an acquisition step of acquiring statistical information regarding the network while the transmission unit is transmitting the stream data; a determination step of determining a first threshold value, which is an allowable amount of data to be buffered on the network, based on the statistical information obtained by the acquisition step; a transmission control step of, when an amount of the stream data buffered on the network exceeds the first threshold while the transmission unit is transmitting the stream data at a first transfer rate, stopping the transmission of the stream data by the transmission unit and resuming transmission of the stream data by the transmission unit at a second transfer rate lower than the first transfer rate; A control method comprising: (Item 9) A program for causing a computer to execute the control method according to item 8.

[0046] (Other Examples) The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) that implements one or more of the functions.

[0047] The invention is not limited to the above-described embodiments, and various modifications and variations are possible without departing from the spirit and scope of the invention. Accordingly, the following claims are appended to apprise the public of the scope of the invention. [Explanation of symbols]

[0048] 1000 camera; 2000 client device; 3000 network; 1001 control section; 1002 storage section; 1003 imaging section; 1004 communication section; 1005 transfer rate control section

Claims

1. A transmitting means for transmitting stream data to a receiving device via a network; acquiring means for acquiring statistical information regarding the network; determining means for determining a first threshold value related to an amount of data buffered on the network; a transmission control means for, when an amount of the stream data buffered on the network exceeds the first threshold while the transmission means is transmitting the stream data at a first transfer rate, stopping the transmission of the stream data at the first transfer rate by the transmission means and resuming the transmission of the stream data at a second transfer rate lower than the first transfer rate; Equipped with The determining means determines the first threshold value based on statistical information obtained by the obtaining means while the transmitting means is transmitting the stream data; The transmitting means transmits the stream data as packets, The determining means derives the number of packets for which no response has been received from among the packets transmitted by the transmitting means, from the statistical information, and determines the first threshold value based on the number. A data transmission device comprising:

2. The transmission control means resumes transmission of the stream data by the transmission means when the amount of the stream data buffered on the network falls below a second threshold value after the transmission of the stream data by the transmission means is stopped.

2. The data transmission device according to claim 1.

3. The second threshold is determined based on an allowable time from the stop to the restart of the transmission of the stream data by the transmission means.

3. The data transmission device according to claim 2.

4. the second transfer rate is a minimum transfer rate that the transmitting means can use to transmit the stream data; The transmission control means, after restarting the transmission of the stream data by the transmitting means at the second transfer rate, increases the transfer rate of the stream data by the transmitting means in a stepwise manner.

2. The data transmission device according to claim 1.

5. the statistical information includes an estimated bandwidth of the network; The transmission control means increases the transfer rate within a range not exceeding the estimated bandwidth.

5. The data transmission device according to claim 4.

6. the second transfer rate is a transfer rate lower than the first transfer rate among a plurality of rates that the transmitting means can use to transmit the stream data; The transmission control means, after restarting the transmission of the stream data by the transmitting means at the second transfer rate, gradually reduces the transfer rate of the stream data by the transmitting means.

2. The data transmission device according to claim 1.

7. A method for controlling a data transmission device having a transmission unit that transmits stream data as packets to a receiving device via a network, comprising: an acquisition step of acquiring statistical information regarding the network while the transmission unit is transmitting the stream data; determining a first threshold value associated with an amount of data buffered on the network based on the statistical information obtained by the obtaining step; a transmission control step of, when an amount of the stream data buffered on the network exceeds the first threshold while the transmission unit is transmitting the stream data at a first transfer rate, stopping the transmission of the stream data at the first transfer rate by the transmission unit and resuming the transmission of the stream data at a second transfer rate lower than the first transfer rate; Including, In the determining step, the number of packets for which no response has been received among the packets transmitted by the transmitting unit is derived from the statistical information, and the first threshold value is determined based on the number. A control method comprising:

8. A program for causing a computer to execute the control method according to claim 7.

Citation Information

Patent Citations

  • Satellite communication system

    JP1995202896A

  • Data communication system, receiver, control method, storage medium and data communication system

    JP1999308271A

  • Communication equipment, communication method, storage medium and communication system

    JP2001016276A

  • Method and apparatus for controlling transmission rate of multimedia streaming

    JP2003318979A

  • Wireless terminal device

    JP2004297120A