Transmitting device, server device, method and program
The video distribution system addresses increased loads by dividing video data into I-pictures for transmission and P-pictures for storage, ensuring efficient and high-quality video distribution across networks with varying bandwidths.
Patent Information
- Application Number
- JP2024203890
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-11-22
- Publication Date
- 2026-01-20
- Estimated Expiration
- 2038-11-02
AI Technical Summary
Conventional video distribution systems face increased network and processing loads as the number of connected cameras rises, leading to potential quality degradation and cost inefficiencies.
A video distribution system that divides video data into I-pictures for transmission and P-pictures for storage, allowing for efficient distribution of high-quality video without overburdening network lines or servers, using adaptive streaming techniques like HLS and MPEG-DASH.
Reduces network and processing loads while maintaining video quality by selectively transmitting I-pictures and storing P-pictures, thereby optimizing bandwidth usage and minimizing data transmission requirements.
Smart Images

Figure 0007802897000001 
Figure 0007802897000002 
Figure 0007802897000003
Abstract
Description
[Technical Field]
[0001] The embodiments of the present invention relate to a transmission device, a server device, a transmission method, and a program. [Background technology]
[0002] Adaptive streaming such as HLS (HTTP Live Streaming) and MPEG-DASH (Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP) can be applied to systems (video distribution systems, video monitoring systems) that distribute and monitor video (moving image data) captured by a camera, for example. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent No. 6239472 [Non-patent literature]
[0004] [Non-Patent Document 1] R. Pantos et al., "RFC 8216, HTTP Live Streaming", [online], August 2017, retrieved from the Internet:<URL:http: / / www.ietf.org / rfc / rfc8216.txt> Summary of the Invention [Problem to be solved by the invention]
[0005] However, with conventional technology, there is a risk that the load on the network lines transmitting data (such as video) and the processing load on the system may increase. For example, as the number of connected cameras increases, there is a risk that the load on the network lines transmitting video from the cameras and the processing load on the server that records and distributes the video may increase. [Means for solving the problem]
[0006] A transmitting device according to an embodiment includes a dividing unit, a transmitting unit, a storage control unit, and a receiving unit. The dividing unit divides a plurality of pieces of transmission data to be transmitted into first data and second data. The transmitting unit transmits the first data to a server device that distributes the transmission data to the receiving device. The storage control unit stores the second data in the storage unit. The receiving unit receives a transmission request for the second data from the receiving device or the server device. The transmitting unit further transmits the second data to the server device in response to the transmission request. [Brief explanation of the drawings]
[0007] [Figure 1] FIG. 1 is a block diagram of a video distribution system according to an embodiment of the present invention. [Figure 2] FIG. 2 is a diagram showing an overview of a distribution process performed by the video distribution system of the present embodiment. [Figure 3] FIG. 2 is a functional block diagram of each device in the video distribution system of the present embodiment. [Figure 4] FIG. 10 is a diagram showing an example of the data structure of a distribution list. [Figure 5] FIG. 4 is a diagram showing an example of a data structure of determination information. [Figure 6] 4 is a flowchart of a transmission process according to the present embodiment. [Figure 7] 10 is a flowchart of a process for transmitting stored data. [Figure 8] 10 is a flowchart of a list generation process according to the present embodiment. [Figure 9] 10 is a flowchart of a determination information generation process according to the present embodiment. [Figure 10]FIG. 4 is a sequence diagram of a content distribution process according to the embodiment. [Figure 11] FIG. 10 is a diagram illustrating an example of determining a distribution list using determination information. [Figure 12] FIG. 10 is a diagram showing an example of updated determination information. [Figure 13] FIG. 10 is a diagram illustrating an example of determining a distribution list using determination information. [Figure 14] FIG. 10 is a diagram showing an example of the configuration of a video distribution system according to a modified example. [Figure 15] FIG. 10 is a diagram showing an outline of a distribution process by a video distribution system according to a modified example. [Figure 16] FIG. 2 is a hardware configuration diagram of a transmission device according to the present embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0008] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of a transmitting device according to the present invention will be described in detail below with reference to the accompanying drawings.
[0009] In conventional video distribution systems using adaptive streaming, in order to reliably record the high-quality video stream (an example of transmission data) required for distributing high-quality live video, it is necessary to prepare a network line with a high transmission rate.
[0010] On the other hand, in large-scale video distribution systems where many cameras are connected, a large amount of camera footage is constantly being transmitted. Therefore, to reduce line load and costs, it is desirable to use a network line with a low transmission rate between the cameras and the server device that records the footage. However, a line with a low transmission rate can result in low-quality live footage, which can hinder monitoring work.
[0011] Therefore, in this embodiment, a video distribution system is realized that can reduce the line load and processing load without degrading the quality.
[0012] An example of transmission data to which this embodiment can be applied will now be described. The transmission data includes time-series data in which a time sequence is determined, such as video data and sensor data.
[0013] Video data is data captured by an imaging device such as a camera or a frame capture device. The video data is acquired in real time from the imaging device and used as content to be distributed. After being captured, the video data may be temporarily stored in a storage medium and used as content to be distributed.
[0014] Sensor data is data that indicates values detected by a sensor (detection device), and includes, for example, information about the time the data was detected (sampled). The sensor can be any device. For example, a microphone that captures sound, a GPS (Global Positioning System) device that captures location information, or a sensor that periodically or irregularly detects the temperature, speed, pressure, etc. of the surrounding environment or electronic devices to be detected and outputs the sensor data can be used.
[0015] In the following, an example will be described in which moving image data is mainly used as transmission data.
[0016] Fig. 1 is a block diagram showing an example of the configuration of a video distribution system according to this embodiment. As shown in Fig. 1, the video distribution system includes a transmitting device 100 (an example of a transmitting device), a distribution server 200 (an example of a server device), and a client 300 (an example of a receiving device). The transmitting device 100 and the distribution server 200 are connected by a network 401. The distribution server 200 and the client 300 are connected by a network 402.
[0017] The networks 401 and 402 may be any network, such as the Internet. For example, the networks 401 and 402 may be either a wired network or a wireless network. Furthermore, the networks 401 and 402 may be configured as a single integrated network.
[0018] The configuration of the communication system shown in Fig. 1 is an example and is not limited to this. For example, a plurality of transmission devices 100, distribution servers 200, and clients 300 may be provided. Furthermore, each of the transmission devices 100, distribution servers 200, and clients 300 may be physically configured as a single device, or may be physically configured as a plurality of devices. For example, the distribution server 200 may be constructed in a cloud environment.
[0019] FIG. 2 is a diagram showing an overview of the distribution process performed by the video distribution system of this embodiment. The transmitting device 100 inputs video and encodes the input video. The transmitting device 100 compression-encodes the video in accordance with a standard such as H.264. The encoded video includes, for example, I-pictures and P-pictures. An I-picture is image data encoded using intra-frame prediction, and includes a full-screen range that can be played back independently. A P-picture is image data encoded using inter-frame prediction based on an I-picture. A P-picture cannot be played back independently, but can be played back in combination with an I-picture.
[0020] The transmitting device 100 divides (fragments) these encoded videos into pictures. The transmitting device 100 then transmits some of the divided pictures (e.g., I pictures) to the distribution server 200 and stores the rest (e.g., P pictures) in a storage unit. The transmitting device 100 may also store the pictures transmitted to the distribution server 200 in a storage unit for playback (local playback), backup, etc.
[0021] Normally, the distribution server 200 distributes only I-pictures transmitted from the transmission device 100 to the client 300. The client 300 displays the distributed video using, for example, a viewer application. The viewer application is an application included in, for example, a browser, for displaying and viewing video. Since I-pictures are transmitted at regular intervals (for example, several pictures per second, or one picture every few seconds), the client 300 displays video (such as a flip book or frame-by-frame (intermittent) video) in which still images (I-pictures) are updated at regular intervals. The viewer application can be realized, for example, as an application using MSE (Media Source Extensions), an application programming interface for HTML (Hyper Text Markup Language) 5. This enables streaming playback using HTTP download.
[0022] When a user operating the client 300 requests the display of a P picture, the transmitting device 100 reads the stored P picture and transmits it to the distribution server 200. The distribution server 200 then distributes the transmitted P picture to the client 300. The distribution server 200 may distribute the transmitted P picture as is, or may distribute a P picture that has only been processed (e.g., changed the transmission packet format) other than conversion processing (e.g., recompression) of the image data. The viewer application of the client 300 combines and displays an already received I picture with a later received P picture. This allows the client 300 to display smoother video. If the transferred data (e.g., an I picture) is stored in a memory unit within the client 300, it can be used for combining with a later received P picture. In other words, the transferred data does not need to be transmitted again from the transmitting device 100 or the distribution server 200. This reduces the amount of data transmitted compared to a method of retransmitting all video data, including the P picture.
[0023] As described above, the distribution server 200 distributes the image data transmitted from the transmitting device 100 to the client 300 either directly or by modifying only the transmission packet format, without applying any conversion processing such as recompression to the image data. For example, the distribution server 200 does not need to convert the image data into a video with reduced quality in order to enable distribution at a low transmission rate. This avoids an increase in the processing load on the distribution server 200 and a deterioration in image quality. Furthermore, since only I-pictures are distributed during normal times, the amount of communication traffic can be reduced. In this way, it is possible to reduce the line load and processing load without degrading the quality.
[0024] Although I-pictures are part of the data constituting video (moving image data), they can be treated as still images. For example, a browser (viewer application) running on client 300 may be able to display I-pictures included in moving image data as still image data. This allows I-pictures to be displayed as still image data without compressing them into still images using, for example, Joint Photographic Experts Group (JPEG). Compared to JPEG still images, I-pictures have a smaller data size (higher compression efficiency), which further reduces line load and processing load. Furthermore, when using distributed video for image recognition, I-pictures can be used as input data for image recognition without converting the video into still images.
[0025] Next, the configuration of each device in the video distribution system of this embodiment will be described in detail below. Fig. 3 is a block diagram showing an example of the functional configuration of each device in the video distribution system of this embodiment.
[0026] As shown in FIG. 3, the transmitting device 100 includes an imaging unit 101, a memory unit 121, an encoding unit 111, a division unit 112, a data transmitting unit 113, a memory control unit 114, and a request receiving unit 115.
[0027] The imaging unit 101 captures and outputs video (moving image data). The imaging unit 101 can be realized by, for example, an imaging element such as a CCD (Charge Coupled Device) or a CIS (CMOS image sensor), or a frame buffer capture such as a frame memory, a frame grabber, or a screen capture.
[0028] The storage unit 121 stores various data used in various processes by the transmission device 100. For example, the storage unit 121 stores video captured by the imaging unit 101.
[0029] The encoding unit 111 encodes the video input from the imaging unit 101. Any encoding method may be used by the encoding unit 111, but for example, an encoding method conforming to a standard such as H.264 may be applied. The encoding unit 111, for example, compression-encodes the video and outputs video including I-pictures and P-pictures. Each picture of the encoded video corresponds to a plurality of transmission data to be transmitted.
[0030] Dividing unit 112 divides the coded video into data (first data) to be transmitted to distribution server 200 and data (second data) to be stored in storage unit 121 without being transmitted. For example, dividing unit 112 divides the coded video into pictures so that an I picture is data to be transmitted to distribution server 200 (fragment data) and a P picture is data to be stored in storage unit 121 (fragment data). Dividing unit 112 may divide the video so that each divided picture becomes a single file (fragment file). For data to be stored in storage unit 121, dividing unit 112 may divide the data so that multiple pictures are included in a single file.
[0031] The method of dividing data by the dividing unit 112 is not limited to this, and any method may be used. For example, the dividing unit 112 may divide the coded video into I pictures selected at intervals of a certain number from a plurality of I pictures and other pictures (the remaining I pictures and P pictures). Alternatively, for example, the dividing unit 112 may divide the coded video into I pictures and P pictures selected at intervals of a certain number from a plurality of P pictures and other pictures (the remaining P pictures). Alternatively, for example, the dividing unit 112 may divide the coded video into I pictures selected at intervals of a certain number from a plurality of I pictures and P pictures selected at intervals of a certain number from a plurality of P pictures and other pictures (the remaining I pictures and P pictures).
[0032] The data to be transmitted to the distribution server 200 may be represented in a format that can be directly distributed by the distribution server 200. For example, the division unit 112 may convert the divided data so that the divided data has a format that complies with a standard such as Fragmented MP4 (fMP4).
[0033] The data to be transmitted to distribution server 200 may be represented in a format to which data (metadata) that allows the data to be converted into a format for distribution by distribution server 200 is added. For example, division unit 112 may add metadata containing information necessary for conversion to the divided data so that the data can be converted into a format conforming to a standard such as fMP4 on the distribution server 200 side. The information necessary for conversion includes, for example, information for identifying transmitting device 100 (such as an IP address and port number), time (such as the date, time, minute, and second when the image was captured), and the position of the image within that time (such as information indicating the number from the beginning).
[0034] The dividing unit 112 may change the size or code amount of data to be transmitted to the distribution server 200 depending on the bandwidth of the network 401. For example, the dividing unit 112 may divide the data to be transmitted to the distribution server 200 into data corresponding to a size that can be transmitted within the allocated bandwidth of the network 401 without causing delay or the like, or data having an encoding bit rate within the bandwidth of the network 401. For example, when the bandwidth of the network 401 is large, the dividing unit 112 may divide the data to be transmitted to the distribution server 200 into I-pictures and some of the P-pictures, and as the bandwidth becomes smaller, the dividing unit 112 may divide the data to be transmitted to the distribution server 200 into only I-pictures or some of the I-pictures (for example, by thinning out I-pictures at regular intervals). As an encoding method for partially distributing P-pictures, for example, the method described in Patent Document 1 may be used.
[0035] The division unit 112 may change the size or encoding amount of data to be sent to the distribution server 200 by dynamically switching the division method as described above depending on the bandwidth of the network 401 or in response to a request from the client 300 or the distribution server 200.
[0036] If the data encoded by the encoding unit 111 is simply divided, the sizes of the divided data may not match. For example, if the encoding unit 111 has a function of adjusting the code amount of each picture depending on the bandwidth of the network 401, the sizes of each I-picture and each P-picture may differ from each other. Therefore, if, for example, an I-picture among the pictures encoded in this way is divided as data to be transmitted to the distribution server 200, the sizes of the divided I-pictures may also differ from each other.
[0037] Therefore, the encoding unit 111 may adjust the code amount according to the bandwidth of the network 401 so that the size or encoding bit rate of the divided data is a size or encoding bit rate that can be transmitted without delay within the allocated bandwidth of the network 401. For example, if the division unit 112 divides the video so that only I-pictures are transmitted to the distribution server 200, the encoding unit 111 may encode the video so that the size of the I-pictures is a certain size that can be transmitted without delay within the bandwidth of the network 401, or so that the encoding bit rate is within the bandwidth of the network 401.
[0038] Data transmitting unit 113 transmits data to an external device such as distribution server 200. For example, data transmitting unit 113 transmits data (first data) to be transmitted to distribution server 200 from among the data divided by division unit 112 to distribution server 200. Furthermore, when a transmission request for data stored in storage unit 121 is received by request receiving unit 115 (described later), data transmitting unit 113 transmits the requested data to distribution server 200.
[0039] The storage control unit 114 controls storage processing for the storage unit 121. For example, the storage control unit 114 stores, in the storage unit 121, data that is not to be transmitted to the distribution server 200, among the data divided by the division unit 112. The storage control unit 114 may store, in the storage unit 121, data (first data) transmitted to the distribution server 200. At this time, the storage control unit 114 may manage the stored data using metadata indicating that the transmitted data (first data) has been transmitted or indicating that the transmitted data (second data) has not yet been transmitted. The storage control unit 114 may delete data stored in the storage unit 121 according to predetermined conditions. For example, the storage control unit 114 may delete data that has been stored for a certain period of time.
[0040] The request receiving unit 115 receives a request to transmit data stored in the storage unit 121 from the distribution server 200. In a configuration in which a request is transmitted from the client 300 via a control server other than the distribution server 200, the request receiving unit 115 may receive a request to transmit data stored in the storage unit 121 from such a control server.
[0041] Each of the above units (encoding unit 111, dividing unit 112, data transmitting unit 113, storage control unit 114, request receiving unit 115) is realized, for example, by one or more processors. For example, each of the above units may be realized by having a processor such as a CPU (Central Processing Unit) execute a program, i.e., by software. Each of the above units may be realized by a processor such as a dedicated IC (Integrated Circuit), i.e., by hardware. Each of the above units may be realized by a combination of software and hardware. When multiple processors are used, each processor may realize one of the units, or may realize two or more of the units.
[0042] The functions of the transmitting device 100 may be distributed among multiple physically or logically different devices. For example, they may be separated into a device including the imaging unit 101 and the encoding unit 111 (video input and encoder in FIG. 2) and a device including the remaining units (fragmentation and storage units in FIG. 2). In this case, the data encoded by the encoding unit 111 is input to the latter device via a communication path such as a network or a coaxial cable. The latter device may be configured to acquire the encoded data via the communication path.
[0043] Next, the configuration of distribution server 200 will be described. Distribution server 200 distributes a distribution list and determination information to client 300 via network 402. The distribution list is a list that describes information about the data to be distributed (hereinafter also referred to as content). Typically, a content distributor describes metadata such as the content acquisition source and bit rate in the distribution list. A content acquirer can identify the content to acquire by acquiring and analyzing the distribution list.
[0044] The content listed in the distribution list may include not only content that can be transmitted, but also content that cannot be transmitted, content that is not permitted to be transmitted, etc. The determination information is information that allows the receiving device (client 300) to determine whether or not to request transmission of the content included in the distribution list.
[0045] As shown in Figure 3, the distribution server 200 includes a detection unit 201, a list generation unit 211, a judgment information generation unit 212, a list transmission unit 213, a judgment information transmission unit 214, a request transmission / reception unit 215, a distribution unit 216, a data reception unit 217, a memory control unit 218, a temporary memory unit 221, and a memory unit 222.
[0046] The detection unit 201 detects that content has become available for transmission. For example, the detection unit 201 determines that content has become available for transmission when content is provided from a content providing device (such as the transmission device 100). The detection unit 201 may monitor a storage area (such as the temporary storage unit 221) in which content is stored, and determine that content has become available for transmission when content is stored.
[0047] The list generation unit 211 generates a distribution list. For example, the list generation unit 211 generates a distribution list when a request is received from the client 300 to generate and transmit a distribution list. The trigger for generating a distribution list is not limited to this, and any trigger may be used. For example, the list generation unit 211 may generate a distribution list of content to be transmitted in the next period every time a certain amount of time has elapsed. The list generation unit 211 may generate a distribution list when content is provided by a providing device, or when instructed to generate a distribution list.
[0048] FIG. 4 is a diagram showing an example of the data structure of a distribution list. As shown in FIG. 4, the distribution list includes identification information that identifies content. FIG. 3 shows an example in which the URL (Uniform Resource Locator) of the content is used as the identification information. Information other than a URL may be used as the identification information as long as it can identify the content. The distribution list may also include information other than the identification information. In this embodiment, a distribution list is created that includes, for example, a URL for each piece of divided data (such as a picture).
[0049] 3, the determination information generation unit 212 generates determination information. For example, if the content is transmittable, the determination information generation unit 212 generates determination information indicating that the content is transmittable, and if the content is not transmittable, the determination information generation unit 212 generates determination information indicating that the content is not transmittable. Furthermore, if the situation indicating whether the content is transmittable or not changes, the determination information generation unit 212 generates updated determination information to correspond to the changed situation.
[0050] The determination information generation unit 212 generates the determination information, for example, when the client 300 requests that the determination information be generated and transmitted. When the list generation unit 211 generates a distribution list, the determination information generation unit 212 may generate the determination information at that time. The trigger for generating the determination information is not limited to this, and any trigger may be used. For example, the determination information generation unit 212 may detect whether or not the content has become transmittable every time a certain period of time has elapsed, for example, using the detection unit 201, and generate updated determination information according to the detection result.
[0051] Fig. 5 is a diagram showing an example of the data structure of determination information. The determination information in Fig. 5 is an example of determination information for determining whether the four pieces of content listed in the distribution list in Fig. 4 can be transmitted. For example, "○" indicates that the content can be transmitted, and "×" indicates that the content cannot be transmitted. In the example of Fig. 5, four pieces of determination information ("○" or "×") corresponding to the four pieces of content ("ContentA_1", "ContentA_2", "ContentA_3", "ContentA_4") corresponding to the four URLs in Fig. 4 are specified in the corresponding order.
[0052] As long as it is possible to specify the judgment information for each piece of content, judgment information having a data structure other than that shown in Figure 5 may be used. For example, content identification information may be associated with the judgment information. Information for identifying a distribution list may be associated with the judgment information so that it is possible to identify which distribution list the judgment information corresponds to.
[0053] The state in which content can be transmitted means, for example, that the content to be distributed has been provided to distribution server 200 and can be transmitted to client 300. The state in which content cannot be transmitted means, for example, that the content to be distributed has not yet been provided to distribution server 200 and cannot be transmitted to client 300. Note that distribution server 200 may transmit content in response to a request from client 300 (pull-type transmission), or may transmit content without a request from client 300 (push-type transmission).
[0054] Regardless of whether the content is provided or not, distribution server 200 may specify whether the content is transmittable or not. For example, in order to reduce the communication load, determination information indicating that some or all of the provided content is not transmittable may be generated, and the content may not be transmitted. In this way, content that is transmittable may later become not transmittable.
[0055] The determination information may be one for each content, or may be multiple. For example, one or more pieces of metadata for the content may be used as the determination information. The metadata may include, for example, range information indicating the range of the content, the data length of the content, and the type of content. The range information may specify, for example, the range of data to be distributed as content. If the range information is determined, the determined range information is set as the determination information. If the range information is undetermined, predetermined information indicating that the range is undetermined (undetermined information) is set as the determination information. If undetermined information is set as the range information serving as the determination information, the client 300 can determine that the corresponding content cannot be transmitted. In this way, when metadata is used as the determination information, it is sufficient to define a data format that allows the determination of whether or not the content can be transmitted based on the metadata.
[0056] 3, the list sending unit 213 sends the distribution list generated by the list generation unit 211 to the client 300. For example, the list sending unit 213 sends the distribution list to the client 300 in advance before starting to send content. The determination information sending unit 214 sends the determination information generated by the determination information generation unit 212 to the client 300.
[0057] The request transmitting / receiving unit 215 transmits and receives various requests. For example, the request transmitting / receiving unit 215 receives a request to transmit a distribution list, a request to transmit determination information, and a request to transmit content from the client 300. The request transmitting / receiving unit 215 also transmits a request to transmit content stored in the storage unit 121 to the transmitting device 100.
[0058] The delivery unit 216 transmits the requested content to the client 300 that transmitted the transmission request. When push-type transmission is employed, the delivery unit 216 may transmit the content without a request from the client 300.
[0059] The data receiving unit 217 receives data transmitted from the transmitting device 100. For example, the data receiving unit 217 receives divided data to be transmitted to the distribution server 200. When a transmission request for data stored in the storage unit 121 is transmitted, the data receiving unit 217 receives the data transmitted by the transmitting device 100 in response to this transmission request.
[0060] The storage control unit 218 controls the storage process for the temporary storage unit 221 and the storage unit 222. If the data transmitted from the transmitting device 100 and the data converted from the data transmitted from the transmitting device 100 into a format suitable for distribution by the distribution server 200 are stored in the storage unit 222 and then distributed, the process of storing data in the storage unit 222 may not keep up with the distribution speed, or the write process to the storage unit 222 may temporarily freeze, causing an abnormality in the write process and preventing normal distribution. Therefore, the storage control unit 218 stores the data transmitted from the transmitting device 100 in the temporary storage unit 221, which is a storage medium that does not cause the above-mentioned abnormality in the write process. If the data is stored in the temporary storage unit 221, the distribution unit 216 reads the data from the temporary storage unit 221 and distributes it to the client 300. At this time, the data transmitted from the transmitting device 100 is ultimately stored in the storage unit 222. Therefore, the distribution unit 216 may operate in response to a request from the client 300 as if it were distributing data from the storage unit 222. In other words, in response to a request for data stored in the storage unit 222, the distribution unit 216 may return data stored in the temporary storage unit 221. This function can be realized by recording the linkage of these files on the distribution server 200 (database, file, symbolic link, etc.) and referencing it during distribution.
[0061] Then, the storage control unit 218 performs a process (writing process) of writing the data stored in the temporary storage unit 221 to the storage unit 222. In the writing process, the storage control unit 218 may combine multiple pieces of data stored in the temporary storage unit 221 into one piece of data and store the combined data in the storage unit 222. For example, the storage control unit 218 may combine multiple pieces of data captured within a certain period of time so that they are included in one file, and write the combined file (combined file) to the storage unit 222. This makes it possible to avoid problems such as the inability to store data due to the number of files stored in the storage unit 222 exceeding the capacity of the operating system, for example.
[0062] After combining multiple data into one data and storing it in the storage unit 222, if a request to send data included in the combined data is received from the client 300, a function for identifying the relevant data from the combined data is required. Therefore, for example, the list creation unit 211 may update the distribution list to include identification information for identifying the relevant data. For example, the list creation unit 211 creates a distribution list in which identification information indicating the position of data within the combined file (such as a byte offset from the beginning) is associated with identification information (such as a URL) of the data, and sends the distribution list to the client 300.
[0063] When client 300 refers to an updated distribution list and requests transmission of data, it specifies the corresponding specific information along with the identification information of the requested data. For example, client 300 requests data using information in which the specific information is added to a URL indicating the identification information of the data. Client 300 may also request data using a transmission request that includes the specific information in a header (such as an HTTP extension header).
[0064] The requested file name may be the original file name before splitting. This makes it easier to determine whether the data has already been received and cached on the client 300, thereby reducing the need to re-acquire already acquired data. In this case, the distribution server 200 must identify the combined data (combined file) from the original split files (fragment files). To achieve this, there are several methods: (1) sending information about the combined file for the fragment files as identification information to the client 300 in advance, and the client 300 then includes this information in an HTTP extension header when making a request; or (2) the distribution server 200 itself identifies the combined file from the requested fragment file name when responding to the request. Regarding (2), possible methods include (2-1) recording the association with the fragment files when creating the combined file (using a database, file, symbolic link, etc.), and (2-2) using a naming convention to resolve the association (for example, in the example of Figure 4, the combined file name for ContentsA_1 to ContentsA_4 could be ContentsA).
[0065] The distribution server 200 uses the identification information transmitted from the client 300 to identify the relevant data from the combined data, and distributes the identified data to the client 300 that made the request.
[0066] The storage control unit 218 may delete data stored in the storage unit 222 according to predetermined conditions. For example, the storage control unit 218 may delete data that has been stored for a certain period of time. The storage control unit 218 may also delete data in stages as certain time periods elapse. For example, the storage control unit 218 deletes all or part of P pictures from the storage unit 222 after a certain period (e.g., one day), and thereafter, deletes P pictures or I pictures from the storage unit 222 in a staged thinning manner each time a further certain period (which may be the same as the initial period or a different period) elapses. This process makes it possible to obtain video that becomes more intermittent over time, for example, when it is desired to reduce storage capacity for long-term recording, without performing a process of converting the video into video with reduced quality. The gradual deletion of P pictures can be achieved using, for example, an encoding technique described in Patent Document 1.
[0067] Furthermore, for example, the storage control unit 218 may prioritize the deletion of data that has already been transmitted. At this time, the storage control unit 218 may determine whether the data has already been transmitted by using metadata indicating whether the data has already been transmitted. Furthermore, the storage control unit 218 may prepare other metadata in advance to be referenced in the deletion process. This metadata is, for example, data that can determine which data corresponds to which picture. More specifically, the metadata includes, for example, the time (such as the date, time, minute, and second when the image was captured), the position of the image within that time (such as information indicating the number from the beginning), the file name, and the byte offset from the beginning of the file.
[0068] The temporary storage unit 221 temporarily stores the received data. For example, the temporary storage unit 221 can be configured with a volatile memory such as a DRAM (Dynamic Random Access Memory).
[0069] The storage unit 222 stores various data used by the distribution server 200. For example, the storage unit 222 stores content to be distributed, a generated distribution list, and generated determination information. The storage unit 222 can be configured using any commonly used storage medium, such as a memory card, a RAM (Random Access Memory), an HDD (Hard Disk Drive), or an optical disk.
[0070] If the above-described abnormality in the write process does not occur, the temporary storage unit 221 may be omitted.
[0071] Each of the above units (detection unit 201, list generation unit 211, determination information generation unit 212, list transmission unit 213, determination information transmission unit 214, request transmission / reception unit 215, distribution unit 216, data reception unit 217, and storage control unit 218) is realized, for example, by one or more processors. For example, each of the above units may be realized by having a processor such as a CPU execute a program, i.e., by software. Each of the above units may be realized by a processor such as a dedicated IC, i.e., by hardware. Each of the above units may be realized by using a combination of software and hardware. When multiple processors are used, each processor may realize one of the units, or may realize two or more of the units.
[0072] Note that the functions of distribution server 200 may be distributed across multiple physically or logically different devices. For example, they may be separated into a server device that transmits a distribution list and a server device that transmits content. Furthermore, they may be separated into a server device that receives data from transmission device 100 and stores it in temporary storage unit 221 and storage unit 222, and a server device that reads data from temporary storage unit 221 and storage unit 222 and distributes it.
[0073] Next, we will explain the functions of client 300. As shown in Figure 3, client 300 includes a list receiving unit 311, a determination information receiving unit 312, a determination unit 313, a request transmitting unit 314, a data receiving unit 315, a playback unit 316, and a storage unit 321.
[0074] The list receiving unit 311 receives the distribution list from the distribution server 200. The determination information receiving unit 312 receives the determination information from the distribution server 200.
[0075] The determination unit 313 determines the content to be requested to be transmitted based on the distribution list and the determination information. For example, the determination unit 313 determines, among the content whose URL is listed in the distribution list shown in FIG. 4, the content for which the determination information is set to "○" as shown in FIG. 5, as the content to be requested to be transmitted. When the above-mentioned range information is used as the determination information, the determination unit 313 determines, for example, content for which undetermined information is not set in the range information as the content to be requested to be transmitted. When multiple pieces of determination information are used, the determination unit 313 may determine the content to be requested to be transmitted based on a combination of the multiple pieces of determination information. For example, when all pieces of determination information indicate that the content can be transmitted, the determination unit 313 determines the corresponding content as the content to be requested to be transmitted.
[0076] The request sending unit 314 sends a transmission request for the content determined to be requested to be transmitted to the distribution server 200. The data receiving unit 315 receives the content transmitted in response to the transmission request transmitted by the request sending unit 314 from the distribution server 200. The playback unit 316 plays back the received content.
[0077] The storage unit 321 stores various data used by the client 300. For example, the storage unit 321 stores a transmitted distribution list, transmitted determination information, and distributed content.
[0078] Each of the above units (list receiving unit 311, determination information receiving unit 312, determination unit 313, request sending unit 314, data receiving unit 315, and playback unit 316) is realized, for example, by one or more processors. For example, each of the above units may be realized by having a processor such as a CPU execute a program, i.e., by software. Each of the above units may be realized by a processor such as a dedicated IC, i.e., by hardware. Each of the above units may be realized by using a combination of software and hardware. When multiple processors are used, each processor may realize one of the units, or may realize two or more of the units.
[0079] By using the distribution list and determination information described above, the distribution server 200 does not need to create and transmit a distribution list every time an update occurs. Furthermore, the client 300 can more easily analyze the updated parts by referencing the determination information. In other words, it is possible to efficiently acquire and analyze information equivalent to the latest distribution list without reacquiring and reanalyzing the distribution list.
[0080] Note that the distribution server 200 may be configured to create and transmit a distribution list each time data is updated without using the determination information. In this case, functions related to the determination information (such as the determination information generation unit 212, determination information transmission unit 214, and determination information reception unit 312) may not be provided. Furthermore, if push-type transmission is employed, for example, the distribution server 200 may distribute video to the client 300 without using a distribution list.
[0081] Next, a description will be given of a data transmission process performed by the transmission device 100 according to this embodiment. Fig. 6 is a flowchart showing an example of the transmission process according to this embodiment.
[0082] The imaging unit 101 captures video to be distributed (step S101). The encoding unit 111 encodes the video input from the imaging unit 101 (step S102). The division unit 112 divides the data into data to be transmitted to the distribution server 200 and data to be stored in the storage unit 121. For example, the division unit 112 divides the input video into I-picture fragments and P-picture fragments (step S103). The data transmission unit 113 transmits the I-picture fragments to the distribution server 200 (step S104). The storage control unit 114 stores the P-picture fragments in the storage unit 121 (step S105).
[0083] Next, a description will be given of a process for transmitting data stored in storage unit 121. Fig. 7 is a flowchart showing an example of a process for transmitting data stored in storage unit 121.
[0084] Request receiving unit 115 receives a transmission request for data stored in storage unit 121 from distribution server 200 (or the control server) (step S201). If P pictures are stored in storage unit 121, request receiving unit 115 receives a transmission request for one of the stored P pictures. Data transmitting unit 113 reads the requested P picture from storage unit 121 and transmits it to distribution server 200 (step S202).
[0085] Next, a description will be given of the list generation process performed by the distribution server 200 according to this embodiment configured as described above. The list generation process is a process in which the distribution server 200 generates a distribution list. Fig. 8 is a flowchart showing an example of the list generation process according to this embodiment.
[0086] The list generation unit 211 of the distribution server 200 generates a distribution list (step S301), for example, in response to a request from the client 300. The list generation unit 211 stores the generated distribution list in, for example, the storage unit 222 (step S302).
[0087] As an example, assume that ContentA_1, ContentA_2, ContentA_3, and ContentA_4, which are consecutive contents in time, are scheduled to be distributed, and that ContentA_1 and ContentA_3 are available for distribution. In this case, the list generation unit 211 generates a distribution list for distributing ContentA_1, ContentA_2, ContentA_3, and ContentA_4. Figure 4 above shows an example of the distribution list generated at this time.
[0088] Next, a determination information generation process by the distribution server 200 according to this embodiment will be described. The determination information generation process is a process in which the distribution server 200 generates determination information. The determination information generation process is executed, for example, when a request to transmit determination information is received from the client 300. Fig. 9 is a flowchart showing an example of the determination information generation process according to this embodiment.
[0089] The determination information generation unit 212 of the distribution server 200 determines whether determination information has been generated for the content to be distributed (step S401). If determination information has not been generated (step S401: No), the determination information generation unit 212 generates determination information for the content (step S402). Figure 5 above shows an example of determination information generated for the example described in Figure 8 (an example in which ContentA_1 and ContentA_3 can be distributed).
[0090] After generating the determination information, or if the determination information has already been generated (step S401: Yes), the determination information generating unit 212 determines whether to update the generated determination information (step S403). For example, when the determination information generating unit 212 receives a detection result from the detecting unit 201 indicating that the content can be transmitted, the determination information generating unit 212 determines to update the determination information.
[0091] If it is determined that the determination information should be updated (step S403: Yes), the determination information generation unit 212 updates the determination information (step S404). After updating the determination information, or if it is determined that the determination information should not be updated (step S403: No), the determination information generation process ends.
[0092] The distribution server 200 makes the generated distribution list and determination information available for distribution via the network 402. The client 300 can access the distribution server 200 and obtain the distribution list and determination information.
[0093] Next, a content distribution process performed by the communication system according to this embodiment will be described below. Fig. 10 is a sequence diagram showing an example of the content distribution process according to this embodiment.
[0094] The list generation unit 211 of the distribution server 200 generates a distribution list (step S501). This process corresponds to, for example, the list generation process described above. The list transmission unit 213 of the distribution server 200 transmits the distribution list to the client 300 in response to, for example, a request from the client 300 (step S502).
[0095] The determination information generating unit 212 of the distribution server 200 generates determination information (step S503). This process corresponds to, for example, the determination information generating process described above. The determination information transmitting unit 214 of the distribution server 200 transmits the determination information to the client 300 in response to, for example, a request from the client 300 (step S504).
[0096] The list receiving unit 311 of the client 300 receives the distribution list, and the determination information receiving unit 312 receives the determination information. Thereafter, the determination unit 313 of the client 300 uses the received distribution list and determination information to determine the content to be requested to be transmitted (step S505). For example, when the distribution list shown in FIG. 4 is received, the determination unit 313 analyzes the received distribution list to obtain URLs for acquiring each of ContentA_1 to ContentA_4. The determination unit 313 also analyzes the received determination information to determine which of the contents listed in the distribution list are transmittable.
[0097] Fig. 11 is a diagram illustrating an example of making a judgment using the judgment information shown in Fig. 5 for the distribution list shown in Fig. 4. As shown in Fig. 11, by combining the URL for acquiring ContentA_1 listed in the distribution list with the judgment information corresponding to ContentA_1, the judgment unit 313 can judge that ContentA_1 is transmittable (accessible). Similarly, the judgment unit 313 can determine that ContentA_2 is not transmittable (not accessible).
[0098] 10, the request sending unit 314 sends a transmission request for the content determined to be requested to be transmitted to the distribution server 200 (step S506). The distribution unit 216 of the distribution server 200 transmits the requested content to the client 300 (step S507). The data receiving unit 315 of the client 300 receives the content, and the playback unit 316 plays the received content (step S508).
[0099] When content expressed in a format that can be directly delivered by distribution server 200 is transmitted from transmission device 100, distribution unit 216 transmits the content transmitted from transmission device 100 to client 300 without converting it. When content is transmitted in a format with added metadata that allows conversion into a format for distribution by distribution server 200, distribution unit 216 converts the transmitted content into a format that can be delivered in accordance with the metadata, and transmits the converted content to client 300.
[0100] After that, it is assumed that ContentA_2 becomes available for distribution. At this time, the detection unit 201 of the distribution server 200 detects that ContentA_2 becomes available for distribution. The determination information generation unit 212 generates updated determination information according to the detection result (step S509).
[0101] 12 is a diagram showing an example of updated determination information. As shown in FIG. 12, the determination information generation unit 212 updates the determination information corresponding to ContentA_2 from "X" to "O". The updated determination information is made available for distribution via the network 402.
[0102] 10, the determination information transmission unit 214 of the distribution server 200 transmits the updated determination information to the client 300 in response to a request from the client 300, for example (step S510). The subsequent steps S511 to S514 are similar to steps S505 to S508.
[0103] Fig. 13 is a diagram illustrating an example of making a determination using the determination information shown in Fig. 12 for the distribution list shown in Fig. 4. As shown in Fig. 13, the determination unit 313 can determine that ContentA_2 has become transmittable (accessible).
[0104] In this way, when ContentA_2 becomes available for distribution, client 300 can obtain the latest status of each content by simply applying the updated judgment information to the distribution list that has already been received, without having to re-acquire the distribution list.
[0105] This embodiment can be applied to, for example, a system that monitors video captured by a drive recorder. Applicable systems are not limited to this. For example, the present invention may be applied to a system that distributes and monitors sensor data obtained by a sensor, and a system that distributes and monitors video data obtained by an imaging device mounted on a moving object. Examples of moving objects include people, robots, vehicles (automobiles, motorcycles, trains, etc.), carts, flyable objects (manned aircraft, unmanned aircraft (e.g., UAVs (Unmanned Aerial Vehicles), drones), and personal mobility. Examples of moving objects include a moving object that travels via human driving operation and a moving object that can travel automatically (autonomous driving) without human driving operation.
[0106] This embodiment can also be applied to, for example, a monitoring system that monitors the operation history of a screen (HMI: Human Machine Interface) of a device monitoring and control system. The operation history of the screen can be obtained, for example, by a function that captures and records the screen displayed on a display device. The image data obtained in this manner can be used in place of the video captured by the transmitting device 100.
[0107] In equipment monitoring and control systems, a large number of monitoring screens are usually used, and therefore a monitoring system for the screen operation history may need to monitor images from a large number of monitoring screens side by side. Generally, the process of displaying a large number of images in parallel like this increases the processing load, but in this embodiment, only divided data (e.g., I-pictures) can be displayed, thereby suppressing the increase in processing load.
[0108] (Variation 1) Network 401 may be configured to include multiple communication lines, with a portion of the data divided by division unit 112 (e.g., I pictures) being transmitted to distribution server 200 via one of the multiple communication lines (communication line 401A), and the remaining data (e.g., P pictures) being transmitted to distribution server 200 via another of the multiple communication lines (communication line 401B). Figure 14 is a diagram showing an example of the configuration of a video distribution system according to Variation 1 configured in this manner. For example, data transmission unit 113 may live-distribute I pictures via communication line 401A, and transmit P pictures via communication line 401B at any timing.
[0109] (Variation 2) The divided data may be configured to be stored separately in storage units 121 within the transmitting device 100, rather than being transmitted to the distribution server 200. This makes it possible, for example, to read and display only necessary pictures (e.g., I-pictures) from storage unit 121. Displaying only I-pictures reduces the processing load compared to displaying all pictures, including P-pictures. Therefore, even in a client 300 with limited processing power, for example, it becomes possible to read only I-pictures from storage units 121 of multiple transmitting devices 100 and display them in parallel. Furthermore, it becomes possible to read the remaining P-pictures and the like in stages as needed, to create a dynamic display.
[0110] In this case, storage control unit 114 may delete data that has been stored for a certain period of time, or may delete data in stages as the period of time elapses, similar to storage control unit 218 of distribution server 200. For example, when storage capacity is insufficient, instead of deleting all data including I-pictures and P-pictures in chronological order, it is possible to delete only the P-pictures and leave the I-pictures as data that can be displayed intermittently, thereby achieving both long-term storage of data and a reduction in storage capacity.
[0111] (Variation 3) Dividing video into pictures and distributing them may increase the size of the distribution list. Therefore, the list generation unit 211 may create a distribution list using multiple files with a hierarchical structure. For example, the list generation unit 211 may configure the distribution list hierarchically using units such as year, month, day, or time. For example, the lowest-level distribution list includes identification information for each piece of fragment data divided into a certain range of time. The next-higher level distribution list includes information identifying one or more distribution lists corresponding to times included in a certain day. The next-higher level distribution list includes information identifying one or more distribution lists corresponding to days included in a certain month. The next-higher level distribution list includes information identifying one or more distribution lists corresponding to months included in a certain year.
[0112] (Variation 4) 15 is a diagram showing an overview of the distribution process by the video distribution system of Modification 4. The video distribution system of this modification further includes a control server 510 and a Web server 520. In this modification, distribution server 200 is configured as a Web server that distributes video (images).
[0113] The control server 510 includes a control unit 511. The control unit 511 controls the transmitting device 100 in accordance with a request transmitted from the client 300. For example, the client 300 transmits to the control server 510 a transmission request indicating whether to divide a picture and transmit only a portion of it (for example, only I-pictures) or to transmit all of the pictures. In accordance with the transmission request, the control unit 511 of the control server 510 transmits to the transmitting device 100 a control signal indicating whether to divide only a portion of the picture and transmit (upload) it to the distribution server 200 or to transmit all of the pictures to the distribution server 200.
[0114] The transmitting device 100 operates by switching between transmitting only a portion of the divided pictures to the distribution server 200 as in the above embodiment, or transmitting all of the pictures to the distribution server 200, in accordance with a control signal transmitted from the control server 510.
[0115] Capture stream transmission (upload transmission) indicates that the divided data is transmitted to distribution server 200 as data (first data) to be transmitted to distribution server 200. Capture file storage (file output) indicates that the divided data is stored as data (second data) to be stored in storage unit 121 without being transmitted to distribution server 200. As shown in FIG. 15, the stored data may be copied to distribution server 200 offline.
[0116] If necessary, the distribution server 200 converts the data received by the data receiving unit 217 into a distributable format (stream conversion) and stores the data in the storage unit 222. Data copied offline may be converted all at once (batch conversion) and stored in the storage unit 222.
[0117] The storage unit 222 stores each picture (fragment file) in a distributable format, a distribution list, etc. The distribution server 200 functions as a video server that distributes the pictures stored in the storage unit 222. As described above, the data received by the data receiving unit 217 may be stored in the temporary storage unit 221, and the data stored in the temporary storage unit 221 may be distributed by the distribution unit 216.
[0118] The client 300 includes a web browser with a viewer. The web browser includes a video player for playing videos. The video player is implemented as an application that complies with HTML5, for example.
[0119] The Web server 520 is a server device that has functions other than those of a video server. For example, the Web server 520 is a server device that provides a user interface (UI) for an external system different from the video distribution system.
[0120] In this way, the video distribution system of the above embodiment can be realized as a Web system used on the Internet, for example.
[0121] As described above, the video distribution system according to this embodiment makes it possible to reduce the line load and processing load without degrading the quality.
[0122] Next, the hardware configuration of the transmission device according to this embodiment will be described with reference to Fig. 16. Fig. 16 is an explanatory diagram showing an example of the hardware configuration of the transmission device according to this embodiment.
[0123] The transmitting device of this embodiment includes a control device such as a CPU 51, a storage device such as a ROM (Read Only Memory) 52 and a RAM 53, a communication I / F 54 that connects to a network and communicates, and a bus 61 that connects each part.
[0124] The program executed by the transmitting device according to this embodiment is provided in advance in the ROM 52 or the like.
[0125] The program executed by the transmitting device according to this embodiment may be configured to be provided as a computer program product by being recorded in an installable or executable file format on a computer-readable recording medium such as a CD-ROM (Compact Disk Read Only Memory), a flexible disk (FD), a CD-R (Compact Disk Recordable), or a DVD (Digital Versatile Disk).
[0126] Furthermore, the program executed by the transmitting device according to this embodiment may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. Also, the program executed by the transmitting device according to this embodiment may be provided or distributed via a network such as the Internet.
[0127] The program executed by the transmitting device according to this embodiment can cause a computer to function as each unit of the transmitting device described above. In this computer, the CPU 51 can read the program from a computer-readable storage medium onto a main storage device and execute the program.
[0128] Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the scope of the invention and its equivalents as defined in the claims. [Explanation of symbols]
[0129] 100 Transmitting device 101 Imaging unit 111 Encoding section 112 Division 113 Data transmission unit 114 Memory control unit 115 Request Receiver 121 Storage section 200 Distribution Server 201 Detection unit 211 List Generation Unit 212 Judgment information generation unit 213 List Transmission Unit 214 Judgment information transmission unit 215 Request Transmitter / Receiver 216 Distribution Department 217 Data receiving unit 218 Memory control unit 221 Temporary storage 222 Storage section 300 clients 311 List Reception Unit 312 Judgment information receiving unit 313 Judgment section 314 Request Sending Unit 315 Data receiving unit 316 Playback Department 321 Storage section 401, 402 Network 510 Control Server 511 Control Unit 520 Web Server
Claims
1. A division unit that divides a plurality of transmission data to be transmitted into first data and second data; a transmitting unit that transmits the first data to a server device; a storage control unit that stores the second data in a storage unit; a receiving unit that receives a transmission request for the second data from a receiving device to which the transmission data is distributed or from the server device, the dividing unit divides the plurality of pieces of transmission data into only the first data when a bandwidth of a network through which the transmission data is transmitted is smaller than a first bandwidth; The transmitting unit further transmits the second data to the server device in response to the transmission request. Transmitting device.
2. When a bandwidth of a network through which the transmission data is transmitted is smaller than the first bandwidth or smaller than the second bandwidth, the dividing unit divides a portion of the plurality of transmission data into only the first data. The transmitting device according to claim 1 .
3. Further comprising an encoding unit that encodes the first data so that it has a constant size.
3. The transmitting device according to claim 1 or 2.
4. The first data is image data that can be displayed as a still image.
4. A transmitting device according to claim 1.
5. Further comprising an encoding unit that encodes the first data so that the amount of code varies depending on the bandwidth of a network through which the transmission data is transmitted.
5. A transmitting device according to claim 1, 2 or 4.
6. The division unit changes the size of the first data according to a bandwidth of a network through which the transmission data is transmitted.
6. A transmitting device according to claim 1.
7. The storage control unit deletes the second data stored in the storage unit in accordance with predetermined conditions.
7. A transmitting device according to claim 1.
8. The dividing unit converts the first data and the second data into a data format distributed by the server device.
8. A transmitting device according to claim 1.
9. The dividing unit adds metadata to the first data and the second data for converting them into a data format distributed by the server device.
9. A transmitting device according to claim 1.
10. The dividing unit adds metadata to the first data and the second data, the metadata including at least part of information identifying the transmitting device, time, and image position.
9. A transmitting device according to claim 1.
11. A method executed by a transmitting device, comprising: a dividing step of dividing a plurality of pieces of transmission data to be transmitted into first data and second data; a first transmission step of transmitting the first data to a server device; a storage control step of storing the second data in a storage unit; a receiving step of receiving a transmission request for the second data from a receiving device to which the transmission data is distributed or the server device; a second transmission step of transmitting the second data to the server device in response to the transmission request; the dividing step divides the plurality of pieces of transmission data into only the first data when a bandwidth of a network through which the transmission data is transmitted is smaller than a first bandwidth; method.
12. A computer comprising: a dividing step of dividing a plurality of pieces of transmission data to be transmitted into first data and second data; a first transmission step of transmitting the first data to a server device; a storage control step of storing the second data in a storage unit; a receiving step of receiving a transmission request for the second data from a receiving device to which the transmission data is distributed or the server device; a second transmission step of transmitting the second data to the server device in response to the transmission request; the dividing step divides the plurality of pieces of transmission data into only the first data when a bandwidth of a network through which the transmission data is transmitted is smaller than a first bandwidth; program.
13. a data receiving unit that receives first data that is a part of a plurality of transmission data from a transmission device, and receives the second data that is transmitted from the transmission device in response to a transmission request for second data other than the first data among the plurality of transmission data; a temporary storage unit that temporarily stores the received first data and second data; a storage control unit that reads out the first data and the second data stored in the temporary storage unit and writes the read out first data and the second data to a storage unit, the data receiving unit receives, from the transmitting device, the first data divided into only the first data from the plurality of pieces of transmission data when a bandwidth of a network that transmits the transmission data is smaller than a first bandwidth; Server device.
14. When the first data is stored in a temporary storage unit that temporarily stores first data, which is part of a plurality of transmission data and is received from a transmission device, and second data, which is data other than the first data among the plurality of transmission data and is received from the transmission device, the first data stored in the temporary storage unit is delivered to the reception device; When the first data is not stored in the temporary storage unit, the first data read from the temporary storage unit and the first data stored in the storage unit to which the second data has been written are delivered to the receiving device. Equipped with a distribution department, the temporary storage unit, when a bandwidth of a network through which the transmission data is transmitted is smaller than a first bandwidth, divides the plurality of transmission data into only the first data, and stores the first data received from the transmitting device; Server device.
15. The first data and the second data are stored in the temporary storage unit and the storage unit together with metadata including at least a portion of a time, an image position, a file name, and a byte offset from the beginning of the file.
15. The server device according to claim 13 or 14.
16. A method executed on a server device, comprising: a data receiving step of receiving first data, which is a part of a plurality of transmission data, from a transmitting device, and receiving the second data transmitted from the transmitting device in response to a transmission request for second data other than the first data among the plurality of transmission data; a temporary storage step of temporarily storing the received first data and second data in a temporary storage unit; a storage control step of reading out the first data and the second data stored in the temporary storage unit and writing out the read out first data and the read out second data to a storage unit, the data receiving step includes receiving, from the transmitting device, the first data divided into only the first data from the plurality of pieces of transmission data when a bandwidth of a network that transmits the transmission data is smaller than a first bandwidth; method.
17. On the computer, a data receiving step of receiving first data, which is a part of a plurality of transmission data, from a transmitting device, and receiving the second data transmitted from the transmitting device in response to a transmission request for second data other than the first data among the plurality of transmission data; a temporary storage step of temporarily storing the received first data and second data in a temporary storage unit; a storage control step of reading out the first data and the second data stored in the temporary storage unit and writing out the read out first data and the second data to a storage unit; the data receiving step includes receiving, from the transmitting device, the first data divided into only the first data from the plurality of pieces of transmission data when a bandwidth of a network that transmits the transmission data is smaller than a first bandwidth; program.
18. A method executed on a server device, comprising: When the first data is stored in a temporary storage unit that temporarily stores first data, which is part of a plurality of transmission data and is received from a transmission device, and second data, which is data other than the first data among the plurality of transmission data and is received from the transmission device, the first data stored in the temporary storage unit is delivered to the reception device; When the first data is not stored in the temporary storage unit, the first data read from the temporary storage unit and the first data stored in the storage unit to which the second data has been written are delivered to the receiving device. including a delivery step, the temporary storage unit, when a bandwidth of a network through which the transmission data is transmitted is smaller than a first bandwidth, divides the plurality of transmission data into only the first data, and stores the first data received from the transmitting device; method.
19. On the computer, When the first data is stored in a temporary storage unit that temporarily stores first data, which is part of a plurality of transmission data and is received from a transmission device, and second data, which is data other than the first data among the plurality of transmission data and is received from the transmission device, the first data stored in the temporary storage unit is delivered to the reception device; When the first data is not stored in the temporary storage unit, the first data read from the temporary storage unit and the first data stored in the storage unit to which the second data has been written are delivered to the receiving device. Execute the delivery step, the temporary storage unit, when a bandwidth of a network through which the transmission data is transmitted is smaller than a first bandwidth, divides the plurality of transmission data into only the first data, and stores the first data received from the transmitting device; program.
Citation Information
Patent Citations
Housing vessel for shielded electrode
JP1987039472A
Network camera
JP2005026866A
Function similar to VCR rendering of video by on-demand
JP2005051794A
Content distribution system, content distribution method, peer used for content distribution system, application server and cache server
JP2012175274A
Encoder, decoder, streaming system and streaming method
JP2016063481A