Patent ID: 12219164

DETAILED DESCRIPTION

According to one embodiment, a transmission device according to an embodiment includes one or more processors. The processors divide a plurality of pieces of transmission data to be transmitted into first data and second data. The processors transmit the first data to a server device configured to distribute the transmission data to a reception device. The processors store the second data in storage. The processors receive, from the reception device or the server device, a request for transmission of the second data. The processors transmit the second data to the server device in accordance with the request for transmission.

Preferable embodiments of a transmission device will be described below in detail with the accompanying drawings.

In a video distribution system using the conventional adaptive streaming, a network line having a high transmission rate needs to be prepared to reliably record a high-quality video stream (exemplary transmission data) necessary for distribution of high-quality live video.

In a large-scale video distribution system in which a large number of cameras are connected, a large amount of camera video is constantly transmitted. Thus, to reduce a line load and cost, a network line having a low transmission rate is desirably used between each camera and a server device that records the video. However, the quality of live video is low with such a line having a low transmission rate, which potentially causes trouble to monitoring work.

Thus, the present embodiment achieves a video distribution system that can reduce a line load and a processing load without degrading the quality.

The following describes exemplary transmission data to which the present embodiment is applicable. The transmission data includes time series data, the temporal order of which is determined, such as moving image data or sensor data.

The moving image data is captured by an image capturing apparatus such as a camera or a frame capture. For example, the moving image data is acquired from the image capturing apparatus in real time and used as a content to be distributed. The moving image data temporarily stored in a storage medium after being captured may be used as a content to be distributed.

The sensor data represents a value sensed by a sensor (sensing device) and includes, for example, information of a time at which the data is sensed (sampled). The sensor may be any device. The sensor may be, for example, a microphone configured to acquire voice, a global positioning system (GPS) device configured to acquire position information, or a sensor configured to periodically or not periodically sense the temperature, speed, pressure, or the like of a surrounding environment to be sensed or an electronic device, and output the sensed value as sensor data.

The following description is mainly provided with an example in which the transmission data is the moving image data.

FIG.1is a block diagram illustrating an exemplary configuration of a video distribution system according to the present embodiment. As illustrated inFIG.1, the video distribution system includes a transmission device100(exemplary transmission device), a server200(exemplary server device), and a client300(exemplary reception device). The transmission device100and the server200are connected with each other through a network401. The server200and the client300are connected with each other through a network402.

The networks401and402may be any networks such as the Internet. For example, the networks401and402may be each a wired or wireless network. The networks401and402may be configured as one integrated network.

The configuration of a communication system illustrated inFIG.1is merely exemplary, and the present embodiment is not limited thereto. For example, a plurality of transmission devices100, a plurality of servers200, and a plurality of clients300may be provided. Each of the transmission device100, the server200, and the client300may be physically configured as one device or may be physically configured as a plurality of devices. For example, the server200may be established in a cloud environment.

FIG.2is a diagram illustrating an outline of distribution processing performed by the video distribution system according to the present embodiment. The transmission device100receives video and encodes the received video. The transmission device100encodes the video by compression in accordance with a standard such as H.264. The encoded video includes, for example, an I picture and a P picture. The I picture is image data encoded by intra-frame prediction, and includes the entire screen range that can be played back alone. The P picture is image data encoded by inter-frame prediction based on the I picture. The P picture cannot be played back alone but can be played back in combination with the I picture.

The transmission device100divides (fragments) the encoded video for each picture. Then, the transmission device100transmits a divided picture part (for example, I pictures) to the server200, and stores the remaining picture part (for example, P pictures) in storage. The transmission device100may also store the pictures transmitted to the server200in the storage for playback (local playback), backup, and the like.

Normally, the server200distributes, to the client300, only I pictures transmitted from the transmission device100. The client300uses, for example, a viewer application to display the distributed video. The viewer application is included in, for example, a browser and configured to display video for browsing. The I pictures is transmitted at a constant interval (for example, several pictures for one second, or one picture for several seconds), and thus video (stop-motion animation or frame-by-frame playback (intermittent) moving image) in which a still image (I picture) is updated at a constant interval is displayed on the client300. The viewer application may be achieved as, for example, an application using Media Source Extensions (MSE) as an application programming interface for Hyper Text Markup Language (HTML) 5. This enables streaming playback using HTTP downloading.

When display of a P picture is requested by a user or the like operating the client300, the transmission device100reads the stored P picture and transmits the read P picture to the server200. The server200distributes the transmitted P picture to the client300. The server200may directly distribute the transmitted P picture, or may distribute the P picture subjected only to fabrication processing (such as change of a transmission packet format) other than conversion processing (such as recompression) on the image data. The viewer application of the client300synthesizes and displays an I picture already received and the P picture received later. Accordingly, the client300can display a smoother video. Forwarded data (for example, the I picture) may be stored in the storage in the client300so that the data can be used for, for example, synthesis with the P picture received later. In other words, the forwarded data does not need to be transmitted again from the transmission device100and the server200. This method can achieve reduction of the amount of transmission data as compared to a method in which the entire video data including P pictures is transmitted again.

As described above, without providing, for example, conversion processing such as recompression on image data, the server200distributes, to the client300directly or after fabricating only the transmission packet format, image data transmitted from the transmission device100. For example, the server200does not need to execute processing of converting to video having reduced quality for distribution at a low transmission rate. Thus, increase of the processing load on the server200and degradation of the image quality can be avoided. In addition, the amount of communication can be reduced by distributing only I pictures in normal operation. In this manner, the line load and the processing load can be reduced without degrading the quality.

An I picture is partial data included in video (moving image data), but can be handled as a still image. For example, the browser (viewer application) operating on the client300can display an I picture included in moving image data as still image data in some cases. Thus, an I picture can be displayed as still image data without executing, for example, processing of compression to a still image such as a Joint Photographic Experts Group (JPEG) image. An I picture has a small data size (high compression efficiency) as compared to that of a still image in the JPEG format, and thus the line load and the processing load can be further reduced. When distributed video is used for image recognition, an I picture can be used as input data for the image recognition without converting the video into a still image.

The following describes the configurations of devices of the video distribution system according to the present embodiment in detail.FIG.3is a block diagram illustrating exemplary functional configurations of the devices of the video distribution system according to the present embodiment.

As illustrated inFIG.3, the transmission device100includes an image capturing unit101, storage121, an encoding unit111, a division unit112, a data transmission unit113, a storage control unit114, and a request reception unit115.

The image capturing unit101captures and outputs video (moving image data). The image capturing unit101may be achieved by, for example, an image sensor such as a charge coupled device (CCD) or a CMOS image sensor (CIS), or a frame buffer capture such as a frame memory, a frame grabber, or a screen capture.

The storage121stores therein various kinds of data used in various kinds of processing performed by the transmission device100. For example, the storage121stores therein video captured by the image capturing unit101.

The encoding unit111encodes video input from the image capturing unit101. The encoding by the encoding unit111may be performed by any scheme, for example, an encoding scheme according to a standard such as H.264. For example, the encoding unit111encodes the video by compression, and outputs video including I and P pictures. The pictures of the encoded video correspond to a plurality of pieces of transmission data to be transmitted.

The division unit112divides the encoded video into data (first data) to be transmitted to the server200and data (second data) not to be transmitted but to be stored in the storage121. For example, the division unit112divides the encoded video into pictures so that each I picture is data (fragment data) to be transmitted to the server200and each P picture is data (fragment data) to be stored in the storage121. The division unit112may divide the video so that each divided picture is provided as one file (fragment file). The division unit112may perform division into the data to be stored in the storage121so that a plurality of pictures are included in one file.

The data division by the division unit112is not limited to this method but may be performed by any method. For example, the division unit112may divide the encoded video into I pictures selected at a constant interval from among a plurality of I pictures, and the other pictures (remaining I pictures and P pictures). Alternatively, for example, the division unit112may divide the encoded video into I pictures, P pictures selected at a constant interval from among a plurality of P pictures, and the other pictures (remaining P pictures). Alternatively, for example, the division unit112may divide the encoded video into I pictures selected at a constant interval from among a plurality of I pictures, P pictures selected at a constant interval from among a plurality of P pictures, and the other pictures (remaining I pictures and P pictures).

The data to be transmitted to the server200may be expressed in a format directly distributable by the server200. For example, the division unit112may convert the divided data into a format according to a standard such as fragmented MP4 (fMP4).

The data to be transmitted to the server200may be expressed in a format with added data (metadata) that can be used for conversion into a format in which the data is distributed by the server200. For example, the division unit112may add, to the divided data, the metadata including information necessary for conversion with which the server200can perform conversion into a format according to a standard such as fMP4. The information necessary for conversion includes, for example, information (such as an IP address and a port number) for identifying the transmission device100, a time (such as day, hour, minute, and second at which the capturing is performed), and the position of an image (for example, information indicating the order of the image from the start) in the time.

The division unit112may change the size or encoding amount of the data to be transmitted to the server200in accordance with the band of the network401. For example, the division unit112may divide, as the data to be transmitted to the server200, data corresponding to a size that can be transmitted without delay or the like in an allocated band of the network401, or data having an encoding bit rate within the band of the network401. For example, when the band of the network401is large, the division unit112may divide all I pictures and some P pictures as the data to be transmitted to the server200, and as the band decreases, may divide only the I pictures or some of the I pictures (by, for example, thinning the I pictures at a constant interval) as the data to be transmitted to the server200. When some P pictures are to be distributed, the encoding may be performed by, for example, a method disclosed in Japanese Patent No. 6239472.

The division unit112may change the size or encoding amount of the data to be transmitted to the server200by dynamically switching the division method as described above in accordance with the band of the network401or a request from the client300or the server200.

When the data encoded by the encoding unit111is simply divided, the size of each divided data is potentially not equal. For example, when the encoding unit111has the function of adjusting the encoding amount of each picture in accordance with the band of the network401, the sizes of I and P pictures are potentially different from each other. Thus, when, for example, an I picture among the pictures encoded in this manner is divided as the data to be transmitted to the server200, the sizes of divided I pictures are potentially different from each other.

Thus, the encoding unit111may adjust the encoding amount in accordance with the band of the network401so that divided data has a size or an encoding bit rate that can be transmitted without delay or the like in the allocated band of the network401. For example, when the division unit112divides video so that only I pictures are transmitted to the server200, the encoding unit111may encode the video so that the I pictures have a constant size that can be transmitted without delay or the like in the band of the network401or has an encoding bit rate within the band of the network401.

The data transmission unit113transmits data to an external device such as the server200. For example, the data transmission unit113transmits the data to be transmitted to the server200(first data) among data divided by the division unit112to the server200. When a request for transmission of data stored in the storage121is received by the request reception unit115(to be described later), the data transmission unit113transmits the requested data to the server200.

The storage control unit114controls processing of storage into the storage121. For example, the storage control unit114stores, in the storage121, data not to be transmitted to the server200among data divided by the division unit112. The storage control unit114may store the data (first data) transmitted to the server200in the storage121. In this case, the storage control unit114may manage the stored data by using metadata indicating that the transmitted data (first data) has been transmitted or that the second data is has not been transmitted. The storage control unit114may delete data stored in the storage121, in accordance with a predetermined condition. For example, the storage control unit114may delete data stored for a constant duration.

The request reception unit115receives the request for transmission of data stored in the storage121from the server200. When the request is transmitted from the client300through a control server or the like other than the server200, the request reception unit115may receive the request for transmission of data stored in the storage121from such a control server.

The above-described components (the encoding unit111, the division unit112, the data transmission unit113, the storage control unit114, and the request reception unit115) are each achieved by, for example, one or more processors. For example, each component may be achieved by a computer program executed by a processor such as a central processing unit (CPU), in other words, by software. The component may be achieved by a processor such as a dedicated integrated circuit (IC), in other words, by hardware. The component may be achieved by software and hardware. When a plurality of processors are used, each processor may achieve one of the components, or may achieve two or more of the components.

Functions of the transmission device100may be distributed to a plurality of devices physically or logically different from each other. For example, the functions may be distributed to a device (video input and an encoder inFIG.2) including the image capturing unit101and the encoding unit111, and a device including the remaining components (fragmentation and storage inFIG.2). In this case, for example, data encoded by the encoding unit111is input to the latter device through a network or a communication path such as a coaxial cable. The latter device may acquire the encoded data through the communication path.

The following describes the configuration of the server200. The server200distributes a distribution list and determination information to the client300through the network402. The distribution list is a list in which information related to distributed data (hereinafter is also referred to as a content) is written. Normally, a content distributor writes metadata such as the acquisition source and bit rate of the content to the distribution list. A content acquirer acquires and analyzes the distribution list to specify a content to be acquired.

The content written in the distribution list includes not only a content that can be transmitted but also a content that is not ready to be transmitted and a content that is not allowed to be transmitted. The determination information is information based on which the reception device (client300) determines whether to request transmission of a content included in the distribution list.

As illustrated inFIG.3, the server200includes a detection unit201, a list generation unit211, a determination information generation unit212, a list transmission unit213, a determination information transmission unit214, a request transmission-reception unit215, a distribution unit216, a data reception unit217, a storage control unit218, temporary storage221, and storage222.

The detection unit201detects that a content is ready to be transmitted. For example, the detection unit201determines that the content is ready to be transmitted when the content is provided from a content provision device (such as the transmission device100). The detection unit201may monitor a storage region (for example, the temporary storage221) in which the content is stored and determine that the content is ready to be transmitted when the content is stored.

The list generation unit211generates a distribution list. The list generation unit211generates a distribution list, for example, when requested by the client300to generate and transmit the distribution list. A trigger for generating a distribution list is not limited thereto, but may be any trigger. For example, the list generation unit211may generate, upon each elapse of a constant time, a distribution list of contents to be transmitted in the next duration. The list generation unit211may generate a distribution list when a content is provided by the provision device or when instructed to generate the distribution list.

FIG.4is a diagram illustrating an exemplary data structure of a distribution list. As illustrated inFIG.4, the distribution list includes identification information for identifying a content.FIG.3illustrates an example in which the uniform resource locator (URL) of the content is used as the identification information. The identification information may be any information other than the URL, with which the content can be identified. The distribution list may include information other than the identification information. In the present embodiment, for example, a distribution list including the URL of each divided data (such as a picture) is produced.

As illustrated inFIG.3, the determination information generation unit212generates determination information. For example, when a content is ready to be transmitted, the determination information generation unit212generates determination information indicating that the content is ready to be transmitted, or when the content is not ready to be transmitted, the determination information generation unit212generates determination information indicating that the content is not ready to be transmitted. When a status indicating whether the content is ready to be transmitted has changed, the determination information generation unit212generates determination information updated in accordance with the changed status.

The determination information generation unit212generates determination information, for example, when requested by the client300to generate and transmit the determination information. When a distribution list is generated by the list generation unit211, the determination information generation unit212may generate determination information at that state. A trigger for generating determination information is not limited thereto, but may be any trigger. For example, upon each elapse of a constant time, the determination information generation unit212may detect through, for example, the detection unit201whether the content is ready to be transmitted, and generate determination information updated in accordance with a result of the detection.

FIG.5is a diagram illustrating an exemplary data structure of determination information. The determination information inFIG.5is exemplary determination information for determining whether four contents written in the distribution list inFIG.4are ready to be transmitted. For example, a circle indicates that a content is ready to be transmitted, and a cross indicates that a content is not ready to be transmitted. In the example illustrated inFIG.5, four pieces of the determination information (a circle or a cross) corresponding to the four contents (“ContentA_1”, “ContentA_2”, “ContentA_3”, and “ContentA_4”) corresponding to four URLs inFIG.4are specified in an order corresponding to the order inFIG.4.

Determination information having a data structure other than that inFIG.5may be used when the determination information can be specified for each content. For example, the determination information may be associated with identification information of a content. To allow identification of to which distribution list the determination information corresponds, the determination information may be associated with information for identifying the distribution list.

The state in which a content is ready to be transmitted is, for example, a state in which the content to be distributed has been provided to the server200and is ready to be transmitted to the client300. The state in which a content is not ready to be transmitted is, for example, a state in which the content to be distributed has not been provided to the server200and therefore cannot be transmitted to the client300. The server200may transmit a content in accordance with a request from the client300(pull-type transmission), or may transmit a content without a request from the client300(push-type transmission).

The server200may specify whether a content is ready to be transmitted irrespective of whether the content has been provided. For example, to reduce a communication load, the server200may generate, for some or all of a plurality of provided contents, determination information indicating that the content is not ready to be transmitted so that these contents cannot be transmitted. In this manner, a content ready to be transmitted becomes not ready to be transmitted in some cases.

Determination information may be provided as one piece or a plurality of pieces for each content. For example, at least one piece of metadata of the content may be used as determination information. The metadata is, for example, range information indicating the range of the content, the data length of the content, and the kind of the content. The range information is, for example, information for specifying the range of part of data to be distributed as the content. When the range information is confirmed, the confirmed range information is set as determination information, or when the range information is yet to be confirmed, predetermined information (unconfirmation information) indicating that the range information is yet to be confirmed is set as determination information. When the unconfirmation information is set to the range information as determination information, the client300can determine that the corresponding content is not ready to be transmitted. In this manner, when the metadata is used as determination information, it suffices that such a data format is set to determine whether the content can be transmitted based on the metadata.

As illustrated inFIG.3, the list transmission unit213transmits a distribution list generated by the list generation unit211to the client300. For example, the list transmission unit213transmits the distribution list to the client300in advance before starting transmission of a content. The determination information transmission unit214transmits a determination information generated by the determination information generation unit212to the client300.

The request transmission-reception unit215transmits and receives various requests. For example, the request transmission-reception unit215receives, from the client300, a request for transmission of a distribution list, a request for transmission of determination information, and a request for transmission of a content. The request transmission-reception unit215transmits, to the transmission device100, a request for transmission of a content stored in the storage121.

The distribution unit216transmits a requested content to the client300having transmitted a request for transmission thereof. When the push-type transmission is employed, the distribution unit216may transmit a content without a request from the client300.

The data reception unit217receives data transmitted from the transmission device100. For example, the data reception unit217receives data divided as the data to be transmitted to the server200. When a request for transmission of data stored in the storage121is transmitted, the data reception unit217receives the data transmitted by the transmission device100in response to the request for transmission.

The storage control unit218controls processing of storage in the temporary storage221and the storage222. When data transmitted from the transmission device100and data obtained by converting the data transmitted from the transmission device100into a format in which the data is to be distributed by the server200are stored in the storage222and then distributed, writing processing anomalies such as insufficiency of the speed of processing of storing data in the storage222for keeping up with the speed of distribution, and temporary freeze of processing of writing to the storage222occurs, and the distribution cannot be normally performed in some cases. Thus, the storage control unit218stores the data transmitted from the transmission device100in the temporary storage221as a storage medium with which the writing processing anomalies as described above do not occur. The distribution unit216reads data from the temporary storage221and distributes the data to the client300when the data is stored in the temporary storage221. In this case, the data transmitted from the transmission device100is finally stored in the storage222. Thus, the distribution unit216may operate as if distribution is performed from the storage222in response to a request from the client300. Specifically, data stored in the temporary storage221may be returned in response to a request for data stored in the storage222. Such a function can be achieved by recording association of these files on the server200(by using, for example, a database, a file, or a symbolic link) and referring to the association at distribution.

Then, the storage control unit218performs processing (writing processing) of writing data stored in the temporary storage221to the storage222. In the writing processing, the storage control unit218may merge a plurality of pieces of data stored in the temporary storage221into one piece of data and store the merged data in the storage222. For example, the storage control unit218may merge a plurality of pieces of data captured in a constant duration so that the pieces of data are included in one file, and may write the merged file (merge file) to the storage222. Accordingly, it is possible to avoid failure that the number of files stored in the storage222exceeds, for example, a number allowed by an operating system and data cannot be stored any more.

When a plurality of pieces of data are merged into one piece of data and stored in the storage222and then a request for transmission of data included in the merged data is received from the client300, a function of specifying the data in the merged data is needed. Thus, for example, the list generation unit211may update distribution list so that the distribution list includes specification information for specifying the data. For example, the list generation unit211produces distribution list in which specification information (such as a byte offset from the start) indicating the position of data in the merge file is associated with identification information (such as an URL) of the data, and sends the distribution list to the client300.

When referring to the updated distribution list and requesting transmission of data, the client300specifies the identification information of the requested data and the specification information associated therewith. For example, the client300requests the data by using information obtained by adding the specification information to an URL indicating the identification information of the data. The client300may request the data through a transmission request with a header (such as an HTTP extension header) including the specification information.

A file name requested in this case may be the original file name before division. This facilitates determination of whether the data is already received and cached on the client300and prevents acquired data from being acquired again. In this case, the server200needs to specify data (merge file) obtained by merging original divided files (fragment files). This can be achieved by a method (1) in which information of the merge file for the fragment files is transmitted in advance as the specification information transmitted to the client300, and written to the HTTP extension header upon a request by the client300, or by a method (2) in which the server200specifies the merge file from requested fragment file names at a response to the request. The method (2) can be performed by, for example, (2-1) recording association with the fragment files when the merge file is produced (by using, for example, a database, a file, a symbolic link), or (2-2) automatically achieving the specification according to a naming rule (in the example illustrated inFIG.4, a merge file name for ContentA_1 to ContentA_4 is ContentsA).

The server200specifies desired data from the merged data by using the specification information transmitted from the client300, and distributes the specified data to the client300from which the request is sent.

The storage control unit218may delete data stored in the storage222, in accordance with a predetermined condition. For example, the storage control unit218may delete data stored for a constant duration. The storage control unit218may delete data at stages upon each elapse of a constant time. For example, the storage control unit218deletes all or some P pictures in the storage222when a predetermined duration (for example, one day) has elapsed, and thereafter deletes P pictures and I pictures in the storage222by thinning at stages upon each elapse of a predetermined duration (equal to or different from the first duration). Through such processing, it is possible to obtain video, the intermittency of which increases as time elapses, without executing, for example, processing of conversion into video at degraded quality when the amount of storage needs to be reduced for long-period recording. The deletion of P pictures at stages may be performed by, for example, an encoding method disclosed in Japanese Patent No. 6239472.

For example, the storage control unit218may delete transmitted data as a priority. In this case, the storage control unit218may determine whether data has been transmitted by using metadata indicating whether the data has been transmitted. In addition, the storage control unit218may prepare, in advance, other metadata to be referred to in the deletion processing. This metadata is, for example, data for determining which data corresponds to which picture. More specifically, the metadata includes, for example, a time (such as day, hour, day, hour, minute, and second at which the capturing is performed), the position (for example, information indicating the order from the start) of an image in the time, the name of a file, and a byte offset from the start of the file.

The temporary storage221temporarily stores therein received data. For example, the temporary storage221may be achieved by a transitory memory such as a dynamic random access memory (DRAM).

The storage222stores therein various kinds of data to be used by the server200. For example, the storage222stores therein a content to be distributed, a generated distribution list, and generated determination information. The storage222may be achieved by any typically used storage medium such as a memory card, a random access memory (RAM), a hard disk drive (HDD), or an optical disk.

When the writing processing anomalies as described above do not occur, no temporary storage221may be provided.

The above-described components (the detection unit201, the list generation unit211, the determination information generation unit212, the list transmission unit213, the determination information transmission unit214, the request transmission-reception unit215, the distribution unit216, the data reception unit217, and the storage control unit218) are each achieved by, for example, one or more processors. For example, each component may be achieved by a computer program executed by a processor such as a CPU, in other words, by software. The component may be achieved by a processor such as a dedicated IC, in other words, by hardware. The component may be achieved by software and hardware. When a plurality of processors are used, each processor may achieve one of the components or may achieve two or more of the components.

Functions of the server200may be distributed to a plurality of devices physically or logically different from each other. For example, the functions may be distributed to a server device configured to transmit distribution list and a server device configured to transmit a content. Alternatively, for example, the functions may be distributed to a server device configured to receive data from the transmission device100and store the data in the temporary storage221and the storage222, and a server device configured to read data from the temporary storage221and the storage222and distribute the data.

The following describes functions of the client300. As illustrated inFIG.3, the client300includes a list reception unit311, a determination information reception unit312, a determination unit313, a request transmission unit314, a data reception unit315, a playback unit316, and storage321.

The list reception unit311receives a distribution list from the server200. The determination information reception unit312receives determination information from the server200.

The determination unit313determines a content to be requested for transmission based on the distribution list and the determination information. For example, the determination unit313determines, as a content to be requested for transmission, a content for which a circle is set as the determination information as illustrated inFIG.5among contents, the URLs of which are written in the distribution list illustrated inFIG.4. When the above-described range information is used as the determination information, the determination unit313determines, as a content to be requested for transmission, for example, a content, to the range information of which no unconfirmation information is set. When a plurality of pieces of determination information are used, the determination unit313may determine a content to be requested for transmission in accordance with combination of the pieces of determination information. For example, when all pieces of determination information indicate that the corresponding contents are ready to be transmitted, the determination unit313determines the corresponding contents as contents to be requested for transmission.

The request transmission unit314transmits, to the server200, a request for transmission of a content determined to be requested for transmission. The data reception unit315receives, from the server200, the content transmitted in accordance with the transmission request transmitted by the request transmission unit314. The playback unit316playbacks the received content.

The storage321stores therein various kinds of data to be used by the client300. For example, the storage321stores therein transmitted distribution list, transmitted determination information, and a distributed content.

The above-described components (the list reception unit311, the determination information reception unit312, the determination unit313, the request transmission unit314, the data reception unit315, and the playback unit316) are each achieved by, for example, one or more processors. For example, each component may be achieved by a computer program executed by a processor such as a CPU, in other words, by software. The component may be achieved by a processor such as a dedicated IC, in other words, by hardware. The component may be achieved by software and hardware. When a plurality of processors are used, each processor may achieve one of the components or may achieve two or more of the components.

When the distribution list and the determination information as described above are used, for example, the server200does not need to produce and transmit the distribution list at each update. The client300can more easily analyze an updated part by referring to the determination information. Specifically, it is possible to efficiently acquire and analyze information equivalent to the latest distribution list without acquiring and analyzing the distribution list again.

The distribution list may be produced and transmitted at, for example, each data update without using the determination information. In this case, functions (such as the determination information generation unit212, the determination information transmission unit214, and the determination information reception unit312) related to the determination information do not need to be provided. When, for example, the push-type transmission is employed, the server200may distribute video to the client300without using the distribution list.

The following describes data transmission processing performed by the transmission device100according to the present embodiment.FIG.6is a flowchart illustrating exemplary transmission processing in the present embodiment.

The image capturing unit101captures video to be distributed (step S101). The encoding unit111encodes the video input from the image capturing unit101(step S102). The division unit112divides the video into data to be transmitted to the server200and data to be stored in the storage121. For example, the division unit112divides the input video into an I picture fragment and a P picture fragment (step S103). The data transmission unit113transmits the I picture fragment to the server200(step S104). The storage control unit114stores the P picture fragment in the storage121(step S105).

The following describes processing of transmitting data stored in the storage121.FIG.7is a flowchart illustrating exemplary processing of transmitting data stored in the storage121.

The request reception unit115receives, from the server200(or the control server), a request for transmission of data stored in the storage121(step S201). When P pictures are stored in the storage121, the request reception unit115receives a request for transmission of any of the stored P pictures. The data transmission unit113reads the requested P picture from the storage121, and transmits the read P picture to the server200(step S202).

The following describes list generation processing performed by the server200according to the present embodiment thus configured. In the list generation processing, the server200generates a distribution list.FIG.8is a flowchart illustrating exemplary list generation processing in the present embodiment.

The list generation unit211of the server200generates a distribution list, for example, in accordance with a request from the client300(step S301). The list generation unit211stores the generated distribution list in, for example, the storage222(step S302).

For example, contents to be distributed are temporally continuous contents of ContentA_1, ContentA_2, ContentA_3, and ContentA_4, and ContentA_1 and ContentA_3 are distributable. In this case, the list generation unit211generates a distribution list for distributing ContentA_1, ContentA_2, ContentA_3, and ContentA_4.FIG.4described above illustrates an exemplary distribution list generated in this case.

The following describes determination information generation processing performed by the server200according to the present embodiment. In the determination information generation processing, the server200generates determination information. The determination information generation processing is executed, for example, when a request for transmission of determination information is transmitted from the client300.FIG.9is a flowchart illustrating exemplary determination information generation processing in the present embodiment.

The determination information generation unit212of the server200determines whether determination information has been generated for a content to be distributed (step S401). When determination information has not been generated (No at step S401), the determination information generation unit212generates determination information for the content (step S402).FIG.5described above illustrates exemplary determination information generated in the example (in which ContentA_1 and ContentA_3 are distributable) described with reference toFIG.8.

After having generated determination information or when determination information has been generated (Yes at step S401), the determination information generation unit212determines whether to update the generated determination information (step S403). For example, when having received, from the detection unit201, a detection result indicating that the content has become ready to be transmitted, the determination information generation unit212determines that the determination information is to be updated.

When having determined that the determination information is to be updated (Yes at step S403), the determination information generation unit212updates the determination information (step S404). After having updated the determination information or when having determined that the determination information is not to be updated (No at step S403), the determination information generation unit212ends the determination information generation processing.

The server200keeps the generated distribution list and the generated determination information in a state distributable through the network402. The client300can access the server200and acquire the distribution list and the determination information.

The following describes content distribution processing performed by the communication system according to the present embodiment.FIG.10is a sequence diagram illustrating exemplary content distribution processing in the present embodiment.

The list generation unit211of the server200generates a distribution list (step S501). This processing corresponds to, for example, the above-described list generation processing. The list transmission unit213of the server200transmits the distribution list to the client300, for example, in accordance with a request from the client300(step S502).

The determination information generation unit212of the server200generates determination information (step S503). This processing corresponds to, for example, the above-described determination information generation processing. The determination information transmission unit214of the server200transmits the determination information to the client300, for example, in accordance with a request from the client300(step S504).

The list reception unit311and the determination information reception unit312of the client300receive the distribution list and the determination information, respectively. Thereafter, the determination unit313of the client300determines a content to be requested for transmission based on the distribution list and the determination information thus received (step S505). For example, when the distribution list illustrated inFIG.4is received, the determination unit313analyzes the received distribution list to obtain URLs for acquiring ContentA_1 to ContentA_4. The determination unit313also analyzes the received determination information to determine a content ready to be transmitted among contents written in the distribution list.

FIG.11is a diagram for describing an example in which determination is made on the distribution list illustrated inFIG.4based on the determination information illustrated inFIG.5. As illustrated inFIG.11, the determination unit313can determine that ContentA_1 is ready to be transmitted (accessed) by combining the URL for acquiring ContentA_1 written in the distribution list and the determination information corresponding to ContentA_1. Similarly, the determination unit313can determine that ContentA_2 is not ready to be transmitted (accessed).

As illustrated inFIG.10, the request transmission unit314transmits, to the server200, a request for transmission of the content determined to be requested for transmission (step S506). The distribution unit216of the server200transmits the requested content to the client300(step S507). The data reception unit315of the client300receives the content, and the playback unit316thereof playbacks the received content (step S508).

When a content expressed in a format directly distributable from the server200is transmitted from the transmission device100, the distribution unit216transmits, directly to the client300without conversion, the content transmitted from the transmission device100. When the content is transmitted in a format additionally including metadata with which the content can be converted into a format in which the content is distributed by the server200, the distribution unit216converts the transmitted content into the distributable format in accordance with the metadata, and transmits the converted content to the client300.

Thereafter, for example, ContentA_2 has become distributable. In this case, the detection unit201of the server200detects that ContentA_2 has become distributable. The determination information generation unit212generates determination information updated in accordance with a result of the detection (step S509).

FIG.12is a diagram illustrating exemplary updated determination information. As illustrated inFIG.12, the determination information generation unit212updates the determination information corresponding to ContentA_2 from a cross to a circle. The updated determination information is kept in a state distributable through the network402.

As illustrated inFIG.10, the determination information transmission unit214of the server200transmits the updated determination information to the client300, for example, in accordance with a request from the client300(step S510). The following steps S511to S514are same as steps S505to S508.

FIG.13is a diagram for describing an example in which determination is made on the distribution list illustrated inFIG.4based on the determination information illustrated inFIG.12. As illustrated inFIG.13, the determination unit313can determine that ContentA_2 has become ready to be transmitted (accessed).

In this manner, when ContentA_2 has become distributable, the client300can obtain the latest state of each content only by applying the updated determination information to the already received distribution list without acquiring the distribution list again.

The present embodiment is applicable to, for example, a system that monitors video captured by a drive recorder. A system to which the present embodiment is applicable is not limited to this system. For example, the present embodiment may be applied to a system that distributes and monitors sensor data obtained by a sensor, and a system that distributes and monitors moving image data obtained by an image capturing apparatus or the like mounted on a moving object. A moving object is, for example, a person, a robot, a vehicle (automobile, two-wheel vehicle, or train), a truck, an object that can fly (a manned airplane, an unmanned airplane (for example, an unmanned aerial vehicle (UAV), or a drone)), or a personal mobility. The moving object is, for example, a moving object that travels through driving operation by a person, or a moving object that can automatically travel (automated driving) without driving operation by a person.

The present embodiment is also applicable to, for example, a monitoring system that monitors the history of operation of a screen (human machine interface (HMI)) of an instrument monitoring control system. The screen operation history can be obtained by, for example, a function of capturing and recording a screen displayed on a display device. Image data obtained in this manner can be used in place of video captured by the transmission device100.

In the instrument monitoring control system, normally, a large number of monitoring screens are used, and thus, the monitoring system of the screen operation history needs to monitor images of the large number of monitoring screens side by side in some cases. Typically, such processing of displaying a large number of videos in parallel has a high processing load, but in the present embodiment, only divided data (for example, I pictures) can be displayed, and thus increase of the processing load can be reduced.

First Modification

The network401may include a plurality of communication lines, part (for example, I pictures) of data divided by the division unit112may be transmitted to the server200through any (a communication line401A) of the communication lines, and the remaining data (for example, P pictures) may be transmitted to the server200through another communication line (communication line401B) among the communication lines.FIG.14is a diagram illustrating an exemplary configuration of a video distribution system according to a first modification thus configured. For example, the data transmission unit113may distribute the I pictures through the communication line401A by live stream, and may transmit the P pictures through the communication line401B at an optional timing.

Second Modification

Divided data may be stored in a divided manner in the storage121in the transmission device100without being transmitted to the server200. Accordingly, for example, only necessary pictures (for example, I pictures) can be read from the storage121and displayed. The processing load can be reduced by a method of displaying only I pictures than a method of displaying all pictures including P pictures. Thus, for example, the client300or the like having a limited processing capacity can read only I pictures from the storages121of a plurality of transmission devices100and display the I pictures in parallel. In addition, the remaining P pictures and the like can be read at stages as necessary to achieve moving display.

In this case, similarly to the storage control unit218of the server200, the storage control unit114may delete data stored for a constant duration or delete data at stages upon each elapse of a constant time. For example, when the storage capacity is insufficient, it is possible to delete only P pictures and keep I pictures as data that can be displayed in a thinned manner instead of deleting all data including the I pictures and the P pictures in chronological order, thereby achieving long-period storage and low capacity consumption of data.

Third Modification

When video is divided into pictures and distributed, the size of a distribution list potentially increases. Thus, the list generation unit211may produce distribution lists by using a plurality of files in a hierarchical structure. For example, the list generation unit211may hierarchically configure the distribution lists in units of year, month, day, time, or the like. For example, a distribution list at the lowermost layer includes identification information of each fragment data divided into a certain range of time. The next higher distribution list includes information for identifying at least one distribution list corresponding to time included in a certain day. The next higher distribution list includes information for identifying at least one distribution list corresponding to a day included in a certain month. The next higher distribution list includes information for identifying at least one distribution list corresponding to a month included in a certain year.

Fourth Modification

FIG.15is a diagram illustrating an outline of distribution processing performed by a video distribution system according to a fourth modification. The video distribution system according to the present modification further includes a control server510and a Web server520. In the present modification, the server200is configured as a Web server that distributes video (image).

The control server510includes a control unit511. The control unit511controls the transmission device100in accordance with a request transmitted from the client300. For example, the client300transmits, to the control server510, a transmission request indicating whether pictures are divided and only part of them are (for example, only I pictures) transmitted or all pictures are transmitted. In accordance with the transmission request, the control unit511of the control server510transmits, to the transmission device100, a control signal indicating whether to transmit (upload) part of the pictures to the server200in a divided manner or transmit all pictures to the server200.

The transmission device100operates in a switching manner in accordance with the control signal transmitted from the control server510, and transmits only some pictures divided as described above in the embodiment to the server200or transmits all pictures to the server200.

In capture stream transmission (upload transmission), data divided as data (first data) to be transmitted to the server200is transmitted to the server200. In capture file storage (file output), data divided as data (second data) to be stored in the storage121is not transmitted to the server200but is stored. As illustrated inFIG.15, the stored data may be copied to the server200offline.

The server200converts (stream conversion) data received by the data reception unit217into a distributable format as necessary, and stores the converted data in the storage222. The data copied offline may be converted all at once (batch conversion) and stored in the storage222.

The storage222stores therein a picture (fragment file) in a distributable format, a distribution list, and the like. The server200functions as a video server that distributes a picture stored in the storage222. As described above, data received by the data reception unit217may be stored in the temporary storage221, and the data stored in the temporary storage221may be distributed by the distribution unit216.

The client300includes a Web browser provided with a viewer. The Web browser is provided with a video player that plays back video. The video player is achieved as, for example, an application compatible with HTML5.

The Web server520is a server device having a function other than a function as a video server. For example, the Web server520is a server device for providing a user interface (UI) for an external system different from the video distribution system.

In this manner, the video distribution system according to the above-described embodiment can be achieved as a Web system used on, for example, the Internet.

As described above, in the video distribution system according to the present embodiment, it is possible to reduce the line load and the processing load without quality degradation.

The following describes a hardware configuration of the transmission device according to the present embodiment with reference toFIG.16.FIG.16is an explanatory diagram illustrating an exemplary hardware configuration of the transmission device according to the present embodiment.

The transmission device according to the present embodiment includes a control device such as a CPU51, storage devices such as a read only memory (ROM)52and a RAM53, a communication I/F54connected with a network to perform communication, and a bus61connecting these components.

A computer program to be executed by the transmission device according to the present embodiment is incorporated in the ROM52or the like in advance and provided.

The computer program to be executed by the transmission device according to the present embodiment may be recorded as a file in an installable or executable format on a computer-readable recording medium such as a compact disc read only memory (CD-ROM), a flexible disk (FD), a compact disc recordable (CD-R), or a digital versatile disc (DVD), and may be provided as a computer program product.

The computer program to be executed by the transmission device according to the present embodiment may be stored on a computer connected with a network such as the Internet and may be provided by downloading through the network. The computer program to be executed by the transmission device according to the present embodiment may be provided or distributed through a network such as the Internet.

The computer program to be executed by the transmission device according to the present embodiment can cause a computer to function as each component of the above-described transmission device. The computer can be achieved by the CPU51reading the computer program from a computer-readable storage medium onto a main storage device and executing the computer program.

While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.