WO2012011466A1 - 中継装置、中継方法、通信システム、中継制御プログラム、および記録媒体 - Google Patents
中継装置、中継方法、通信システム、中継制御プログラム、および記録媒体 Download PDFInfo
- Publication number
- WO2012011466A1 WO2012011466A1 PCT/JP2011/066353 JP2011066353W WO2012011466A1 WO 2012011466 A1 WO2012011466 A1 WO 2012011466A1 JP 2011066353 W JP2011066353 W JP 2011066353W WO 2012011466 A1 WO2012011466 A1 WO 2012011466A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- content data
- content
- request
- relay
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Definitions
- the present invention relates to a relay device that transmits content data transmitted from a transmission device to a playback device, and a relay method in such a relay device.
- the present invention also relates to a relay control program that causes a computer to operate as such a relay device, and a recording medium that stores the relay control program.
- the present invention relates to a communication system including such a relay device and a receiving device that receives content data transmitted by the relay device.
- a user can obtain text data, still image data, and the like of a WEB page by accessing the WEB page with a browser.
- the text data and still image data can be obtained using the http (s) protocol. To be transmitted.
- RTP Real-time Transport Protocol
- the distribution server of Patent Document 2 when the intermediate server of Patent Document 2 receives a distribution request for content having the same content (that is, the same title) from a plurality of client devices, the distribution server combines each distribution request into one distribution request and sends it to the backbone network. The content received from the distribution server is sequentially transferred to each client device.
- the distribution server determines that the highest layer is i (1) from the client device according to the video playback capability of the client device. ⁇ i ⁇ N) A scalable video content distribution request is received. Accordingly, when a distribution request for scalable video content is received from a large number of client devices having different video playback capabilities, the distribution server can perform N types of scalable requests even if each request is a distribution request for content of the same title. It may be necessary to transmit video content data to the client device.
- the intermediate server of Patent Document 2 transfers the distribution request to the distribution server at most N times depending on the state of the cache (that is, receives the content data of the same title from the distribution server at most N times). .
- the processing load on the intermediate server and the bandwidth load on the network between the intermediate server and the distribution server become extremely high.
- the present invention has been made in view of the above problems, and its main purpose is to relay content to a large number of playback devices when the content transmitted from the transmission device is scalable content.
- An object of the present invention is to realize a relay device capable of suppressing a bandwidth load of a network with a transmission device.
- the relay apparatus transmits content data composed of a maximum of N pieces (N: integers of 2 or more) of reproduction target contents having different qualities in response to a request from the reproduction apparatus.
- N integers of 2 or more
- the relay device that relays the content data from the device to the playback device and records the content data in the recording unit
- any of the playback target contents constituting the requested first content data Determination means for determining whether or not second content data including the above is recorded in the recording unit, transmission means for transmitting the first content data to the playback device, and the second content data
- the determination means determines that the first content data is recorded in the recording unit, the first content data is recorded in the recording unit. It is characterized by comprising a generating means for generating with second content data.
- the relay device receives the second content data including any one of k ( ⁇ N) playback target contents constituting the first content data requested from the playback device.
- the first content data is generated using the second content data recorded in the recording unit.
- the relay device transmits the first content data itself as in the case of the conventional proxy server when the first content data itself composed of the k playback target contents is not recorded in the recording unit. It is possible to generate the first content data to be relayed to the playback device without obtaining from the above.
- the relay device suppresses the bandwidth load on the network with the transmission device due to relaying the content to a large number of playback devices when the content transmitted from the transmission device is scalable content. There is an effect that can be done.
- the relay method transmits content data composed of a maximum of N pieces (N: an integer of 2 or more) of reproduction target contents having different qualities in response to a request from a reproduction apparatus.
- N an integer of 2 or more
- the relay method of a relay device that relays the content data from the device to the playback device and records the content data in a recording unit
- the playback target constituting the requested first content data
- the determination step of determining whether or not the second content data including any of the contents is recorded in the recording unit, and in the determination step that the second content data is recorded in the recording unit
- the first content data generated in the generating step is characterized in that it contains, a transmission step of transmitting to the playback device.
- the relay method according to the present invention has the same effects as the relay device according to the present invention.
- the relay device has a network bandwidth with a transmission device due to relaying content to a number of playback devices when the content transmitted from the transmission device is scalable content.
- the load can be suppressed.
- FIG. 2 is a diagram illustrating each embodiment and schematically showing processing performed by each device of the communication system in FIG. 1 for an original image from a live camera. It is the figure which showed typically the relationship between the bit stream of each hierarchy which comprises a scalable image
- Each embodiment is shown, (a) is an example of a request message transmitted from the client device to the content server, and (b) is an example of a response message transmitted from the content server to the client device. .
- FIG. 3 is a sequence diagram illustrating an operation example of the communication system according to the first embodiment.
- FIG. 8 shows a cached response message to be extracted and a response message obtained by extraction and transmitted to the client device for the message extraction processing performed by the proxy server during the operation according to the sequence diagram of FIG.
- FIG. 6 is a sequence diagram illustrating another operation example of the communication system according to the first exemplary embodiment.
- (A) is an example of a request message transmitted from the client device to the content server during the operation according to the sequence diagram of FIG. FIG.
- FIG. 10B shows a cached response message to be extracted and a message extracted by the proxy server during the operation according to the sequence diagram of FIG. It is the figure which showed the response message.
- FIG. 10 is a sequence diagram illustrating still another operation example of the communication system according to the first exemplary embodiment.
- (A) is an example of a request message transmitted from the proxy server to the content server during the operation according to the sequence diagram of FIG.
- FIG. 10B shows two response messages used for merging and a response message obtained by merging and sent to the client apparatus for the message merging process performed by the proxy server during the operation according to the sequence diagram of FIG.
- FIG. 10 is a sequence diagram illustrating still another operation example of the communication system according to the first exemplary embodiment.
- FIG. 15 is a sequence diagram illustrating subsequent operations after each operation in the sequence diagram of FIG. 14 is performed.
- 3 is a flowchart illustrating an operation of a proxy server included in the communication system according to the first embodiment.
- FIG. 6 is a functional block diagram illustrating a detailed configuration of each device that configures the communication system of the second exemplary embodiment.
- FIG. 10 is a sequence diagram illustrating an operation example of the communication system according to the second embodiment.
- FIG. 19 is a diagram illustrating a response message to be extracted and a response message obtained by extraction and transmitted to the client device for message extraction processing performed by the proxy server during the operation according to the sequence diagram of FIG. 18. .
- FIG. 10 is a functional block diagram illustrating a detailed configuration of each device that configures a communication system according to a third embodiment.
- FIG. 10 is a sequence diagram illustrating an operation example of a communication system according to a third embodiment.
- the left and right diagrams in (a) are examples of request messages transmitted by the client device and the proxy server during the operation according to the sequence diagram of FIG. (B) shows two response messages to be extracted and a response message obtained by extraction and transmitted to the client device for the message extraction processing performed by the proxy server during the operation according to the sequence diagram of FIG. FIG.
- It is a figure which shows another example of the request message transmitted to a content server from a client apparatus.
- 6 is a flowchart illustrating another operation of the proxy server included in the communication system according to the first exemplary embodiment.
- the content server distributes the content data live to the client device that requests and reproduces the content data of the live video.
- the request from the client device and the distribution from the content server are relayed by the proxy server.
- the content data distributed by the communication system of the present embodiment is scalable content data composed of a plurality of different data capable of reproducing a plurality of levels of video (contents to be reproduced), and has two spatial resolutions (hereinafter referred to as “high and low”).
- the video data of the spatial resolution scalable video is reproducible as data combining the base layer and the enhancement layer and data of only the base layer. Note that the resolution described here does not have to directly correspond to the display resolution of the video displayed by the client device. For this reason, particularly for reproduced video, expressions such as HD quality and SD quality reproduced video are used below.
- FIG. 1 is a diagram showing an overall configuration of a communication system according to the present embodiment.
- the communication system 1 is a system including client apparatuses 100-1 and 100-2, a proxy server 200, and a content server 300.
- the proxy server 200 and the content server 300 are nodes on the backbone network (Internet) 500.
- client devices 100-1 and 100-2 and the proxy server 200 are arranged to constitute the same local area network (LAN).
- LAN local area network
- the client devices 100-1 and 100-2 request the content server 300 to distribute content data of spatial resolution scalable video according to the quality of the playback video. Further, the client device 100-1 can reproduce low resolution (SD quality) and high resolution (HD quality) video, and the client device 100-2 can reproduce only low resolution (SD quality) video. . In the following description, it is assumed that the client devices 100-1 and 100-2 play HD quality and SD quality images, respectively.
- the proxy server 200 has a function as a general proxy server.
- the proxy server 200 when the proxy server 200 receives a distribution request from the client devices 100-1 and 100-2, the content data itself requested for distribution is cached (not shown in FIG. 1). If it is included, the cache content data is transmitted to the client apparatus that issued the distribution request. Further, when the content data itself requested for distribution is not included in the cache, the proxy server 200 transfers the distribution request to the content server 300. Further, the proxy server 200 caches the content data distributed from the content server 300 and transfers it to the client device that has issued the distribution request.
- proxy server 200 has the following specific functions.
- the proxy server 200 when the proxy server 200 receives a distribution request for content data whose uppermost hierarchy is SD quality, if the content data whose uppermost hierarchy is HD quality is cached, the proxy server 200 transfers the distribution request to the content server 300. Instead, content data (base layer data) having the SD hierarchy at the highest level is selected from the cache, and transmitted to the client apparatus that issued the distribution request.
- the proxy server 200 receives a distribution request for content data whose uppermost layer is HD quality
- the proxy server 200 has insufficient HD quality content data (extended (Only layer data) is requested to be distributed to the content server 300.
- the proxy server 200 merges the HD quality content data (enhancement layer data) received from the content server 300 and the cached top-level SD quality content data (base layer data).
- HD quality content data enhanced (Only layer data)
- base layer data base layer data
- the content server 300 is encoded such that it can reproduce SD quality and HD quality video by performing spatial scalable coding processing on the streaming original video input from a live camera (not shown in FIG. 1). Content data of spatial resolution scalable video composed of two different video data is generated.
- the content server 300 receives a distribution request for HD quality content data
- the content server 300 transmits content data capable of reproducing both SD quality and HD quality video (that is, the highest layer is HD quality).
- the content server 300 receives a distribution request for SD quality content data
- the content server 300 transmits content data that can reproduce only the SD quality video (that is, the highest hierarchy is SD quality).
- the client devices 100-1 and 100-2 include a request transmission unit 110, a reproduction unit 120, and a response reception unit 130.
- the request transmission unit 110 is a request for distributing content data in a multipart format in which each part is a later-described movie fragment (fragment) in units of media segments (units in which live video content data is divided at regular intervals). As request data to the content server 300 via the proxy server 200.
- the playback unit 120 decodes the multipart content data included in the response data received by the response receiving unit 130 and plays back the video.
- the SD quality content data is reproduced from the SD quality content data at the highest level.
- HD quality video is played from content data with HD quality at the top layer.
- the response receiver 130 receives content data for each media segment corresponding to the distribution request transmitted by the request transmitter 110 as response data.
- the proxy server 200 includes a request reception unit 210, a processing unit 220, a cache unit 230, a request transmission unit 240, a response reception unit 250, and a response transmission unit 260.
- the request receiving unit 210 receives request data in media segment units transmitted by the client devices 100-1 and 100-2 and supplies the request data to the processing unit 220.
- the request transmission unit 240 transmits the request data supplied from the processing unit 220 to the content server 300.
- the response receiving unit 250 receives response data transmitted from the content server 300 and supplies the response data to the processing unit 220.
- the cache unit 230 is a cache memory capable of high-speed reading and writing.
- the response transmission unit 260 transmits the response data including the media segment supplied from the processing unit 220 to the client device (100-1 or 100-2) that transmitted the corresponding request data.
- the processing unit 220 When the response data including the media segment corresponding to the request data supplied from the request receiving unit 210 is cached in the cache unit 230, the processing unit 220 reads out the response data and supplies the response data to the response transmitting unit 260. To do.
- the processing unit 220 is a case where request data requesting a media segment whose top layer is SD quality is supplied from the request receiving unit 210, and a response including a media segment whose top layer is HD quality.
- a media segment whose top layer is SD quality is extracted from the response data of the cache unit 230 to form response data, and the response data is supplied to the response transmission unit 260 To do.
- the processing unit 220 supplies the request data as it is to the request transmitting unit 240. To do.
- the processing unit 220 includes only the media segment in which the highest level is SD quality when request data for requesting a media segment whose highest level is HD quality is supplied from the request reception unit 210.
- request data requesting a media segment having only HD quality is generated and supplied to the request transmission unit 240.
- the processing unit 220 caches the response data (media segment) supplied from the response receiving unit 250 in the cache unit 230. Further, when the media segment of the response data supplied from the response receiving unit 250 is only HD quality, the processing unit 220 and the media segment in which the highest layer cached in the cache unit 230 is SD quality. To form response data including a media segment whose top layer is HD quality. Then, the processing unit 220 supplies the response transmission unit 260 with response data including a media segment whose top layer obtained by merging is HD quality.
- the content server 300 includes a request reception unit 310, a processing unit 320, a response transmission unit 330, a memory unit 340, an encoding unit 350, and an original video reception unit 360.
- the request reception unit 310 receives the request data transmitted by the proxy server 200 and supplies the request data to the processing unit 320.
- the processing unit 320 reads out the media segment corresponding to the request data supplied from the request receiving unit 310 from the memory unit 340, forms response data, and supplies the response data to the response transmitting unit 330.
- the original video receiving unit 360 receives an original video (live video) distributed by a live camera (not shown) and supplies it to the encoding unit 350.
- the encoding unit 350 sequentially performs a spatial scalable encoding process on the live video, and records the processed data in the memory unit 340. That is, the encoding unit 350 sequentially records encoded content data capable of reproducing SD quality and HD quality video in the memory unit 340.
- the response transmission unit 330 transmits the response data supplied from the processing unit 320 to the client device or proxy server that transmitted the corresponding request data.
- FIG. 3 is a diagram schematically showing this flow.
- the encoding unit 350 of the content server 300 performs spatial scalable encoding processing on the original video 30 to generate two encoded bit streams of a base layer bit stream Base and an enhancement layer bit stream Enhc. To do. These bitstreams are each divided into movie fragments, as will be described later, and transmitted from the content server 300 to the proxy server 200 and from the proxy server 200 to the client devices 100-1 and 100-2.
- the client device 100-1 requests distribution of content data with HD quality at the highest layer. Therefore, the content server 300 (processing unit 320) or the proxy server 200 (processing unit 220) transmits both the fragment including the base layer bit stream Base and the enhancement layer bit stream Enhc to the client device 100-1. Then, the playback unit 120 of the client device 100-1 returns the fragment to the base layer Base and the enhancement layer Enhc two bit streams, performs scalable decoding, and displays a high-quality (HD quality) video on the display unit (not shown). 32 is displayed.
- the content server 300 processing unit 320
- the proxy server 200 processing unit 220
- the client apparatus 100-2 requests distribution of content data having SD quality at the highest layer. Therefore, the content server 300 (processing unit 320) or the proxy server 200 (processing unit 220) transmits only the fragment including the base layer bitstream Base to the client device 100-2. Then, the playback unit 120 of the client device 100-2 returns the received fragment to only the base layer bitstream Base, decodes it, and displays the low-quality (SD quality) video 31 on the display unit (not shown).
- the content server 300 processing unit 320
- the proxy server 200 processing unit 220
- FIG. 4 is a diagram schematically showing the relationship between two bit streams and each movie fragment obtained by dividing and storing the bit stream.
- FIG. 5 is a diagram schematically showing the relationship between the media segment and each movie fragment constituting the media segment.
- each bit stream of the base layer bit stream (Base) and the enhancement layer bit stream (Enhc) is divided and stored by a plurality of movie fragments.
- mdat is bit stream data divided.
- the base layer bitstream is divided and stored in fragment B0, fragment B1,...
- the enhancement layer bitstream is divided and stored in fragment E0, fragment E1.
- the divided data of the bit stream stored in each movie fragment corresponds to a unit portion obtained by dividing the bit stream in units of a certain period.
- the movie fragments storing the base layer bit stream and the enhancement layer bit stream form an MP4 file format (Base.mp4 and Enhc.mp4, respectively) as a whole.
- MoMoov headers 41b and 41e are included in the first movie fragment (fragment B0, fragment E0) of the MP4 file corresponding to each bit stream.
- the moov headers 41b and 41e are headers that hold meta information (such as initialization information) related to the entire bit stream for reproducing the encoded video.
- movie fragments excluding the top of each MP4 file include moof headers 42b and 42e.
- the moof headers 42b and 42e hold meta information for reproducing the video of each movie fragment portion.
- each movie fragment of each bit stream includes video mdat in addition to the header.
- data mdat of each movie fragment of each bit stream partial data of the bit stream in the period corresponding to the movie fragment is stored.
- each bit stream is a live video bit stream. That is, the data mdat of the fragments B0 and E0 hold a video for a certain period from the time when the live camera starts shooting (generation of live video) (shooting time 0). Similarly, the data mdat of the fragments Bt and Et (t> 0) holds a video of a certain period immediately after the period corresponding to the movie fragments B (t ⁇ 1) and E (t ⁇ 1).
- the media segment is composed of a plurality of movie fragments.
- the media segment corresponds to a unit portion obtained by dividing live video content data in units of a certain period. Further, in the present embodiment, this media segment is handled as content data stored in one response data. That is, the media segment is a unit of content data acquired by one request.
- the length of the period corresponding to one media segment is an integral multiple of the length of the period corresponding to one movie fragment. (However, this is a case where the length of the movie fragment is fixed, and when the length of the movie fragment is variable, it is not necessarily an integer multiple).
- the period corresponding to one media segment is assumed to be 10 seconds, and the length of the period corresponding to one movie fragment is assumed to be 1 second.
- the media segment whose uppermost layer is an enhancement layer bit stream (HD quality video stream) as shown in FIG. 5 constitutes an enhancement layer bit stream and a plurality of movie fragments constituting the base layer bit stream. And a plurality of movie fragments.
- the media segment enhc / 0 is composed of fragments B0 to B (N-1) and fragments E0 to E (N-1), and the media segment enhc / 1 is fragment BN to B (2N- 1) and fragments EN to E (2N-1).
- the media segment whose base layer is a base layer bit stream (SD quality video stream) is composed of only a plurality of movie fragments constituting the base layer bit stream.
- the media segment base / 0 is composed of fragments B0 to B (N-1)
- the media segment base / 1 is composed of fragments BN to B (2N-1).
- request data 4A transmitted to the content server 300 and response data 5A (initial response data) transmitted from the content server 300 when the client device newly reproduces a live video will be described.
- FIG. 6A is a diagram showing the data structure of request data 4A
- FIG. 6B is a diagram showing the data structure of response data 5A
- the request data 4A the first line “GET / content1 HTTP / 1.1” is called a request line, and the rest is called a header part.
- the first line “HTTP / 1.1 200 OK” in the response data 5A is the response row.
- "--BOUNDARY" to "--BOUNDARY--” are called body parts.
- the request data 4A is an HTTP message requesting data transmission in the multipart format (Accept: ..., multipart / media-segment in the header portion indicates this). ).
- the request data 4A is also referred to as “multipart request data”.
- the response data 5A corresponding to the request data 4A includes, in the header portion, a character string 501 indicating that the response data 5A is multipart data, and the content server 300 It includes character strings 502-1 and 502-2 indicating that SD quality and HD quality video requests can be accepted, and cache control information “Cache-Control: no-store”.
- the response data 5A includes data 503-1 related to the first movie fragment of the base layer (SD quality) and data 503-2 related to the first movie fragment of the enhancement layer (HD quality) in the body portion.
- the data 503-1 and 503-2 concerning the first movie fragment correspond to each part of the multipart format. Furthermore, each part has the data itself of the head movie fragment corresponding to the body of the part, the line indicating the content type corresponding to the header of the part (video / mp4 indicating the video format, and name indicating whether the data is base or enhc), Is included.
- the header and body of each part are also separated by a blank line.
- the response data 5A is not cached in the content server 300.
- the character strings 502-1 and 502-2 in the header portion are URLs (“content1 / base / 1” in FIG. 6B) that should be specified for the client device to request video of each quality in the multipart format. , “/ Content1 / enhc / 1”).
- the numerical value at the end of the URL (“1" in FIG. 6B) indicates that the 10-second period corresponding to the media segment being distributed by the content server 300 (that is, the distribution can be started to the client device at this time) It shows the number of seconds from the beginning of the live video. That is, when the numerical value at the end is t, it indicates that the period is from t * 10th (in FIG. 6B, “1” is the period from the 10th. Shown).
- period t 10 seconds from the beginning of t * 10 seconds from the top of the live video is simply referred to as “period t”.
- the response data 5A indicating that the period corresponding to the media segment being distributed (newly startable to the client device) is “period t” is also referred to as “initial response data of period t”.
- the response data 5A in FIG. 6B is “initial response data of period 1”.
- the request data 4A and the response data 5A have been described above.
- the reason why the data 503-1 and 503-2 are included in the response data 5A will be briefly described.
- the live video that is first played back by the client device is after a period of time has elapsed since the start of the live video distribution. It may be a video.
- the media segment being distributed does not include the moov headers 41b and 41e including meta information necessary for playback of the encoded video such as initialization, and the client device does not display the live video even if the media segment is received. Can't play.
- the head movie fragment including the moov headers 41b and 41e is included in the response data 5A as the initial response data and sent.
- request data 4B transmitted to the content server 300 every 10 seconds and response data 5B transmitted from the content server 300 in a period during which the live video is being played back by the client device will be described with reference to FIG. .
- FIG. 7A is a diagram showing the data structure of request data 4B
- FIG. 7B is a diagram showing the data structure of response data 5B.
- the request data 4B the first line “GET / content1 / enhc / 1 HTTP / 1.1” is called a request line, and the rest is called a header part.
- the first line “HTTP / 1.1 200 OK” in the response data 5B is the response line, the header from “Content-Type: ⁇ ” to “X-Content-Hd-Url:...” before the blank line, and the blank line Below, "--BOUNDARY" to "--BOUNDARY--” are called body parts.
- the request data 4B is an HTTP requesting that response data of period 1 whose top layer is HD quality be transmitted in a multipart format. It is a message.
- request data 4B is referred to as “HD quality request data of period 1” as necessary.
- the response data 5B corresponding to the request data 4B has a character string 501 indicating that it is in a multipart format and each content data (MP4 file) acquired in the header portion. And character strings 502-1 and 502-2 indicating actual URLs.
- “http://www.sample.com/content1/base/t” indicates a URL from which content data of the base layer in the period t can be obtained.
- “http://www.sample.com/content1/enhc/t” indicates a URL from which content data of the base layer and the enhancement layer in the period t can be obtained.
- the response data 5B includes data (503-1, 503-2,... 503) relating to a total of 20 movie fragments constituting the media segment in the period t (1 in FIG. 7B) in the body portion. -20) is included.
- Each of the 20 data (503-1,...) Corresponds to each part of the multipart format.
- Each part has a binary data of the movie fragment itself corresponding to the body part of the part, a line indicating the content type corresponding to the header part of the part (video / mp4 indicating the video format, and name indicating whether the data is base or enhc) ) And a time stamp indicating the playback time of the movie fragment with the beginning of the live video as time 0.
- 20 data are recorded on the end side of the response data 5B as the time stamp value included is larger.
- the response data 5B shown in FIG. 7B is response data of period 1 in which the highest layer is HD quality. However, in response data 5B corresponding to SD quality request data 4B, movie fragments
- the data related to the response data includes only 10 pieces of data related to the movie fragment constituting the base layer.
- the client device that has received the response data 5B reads and reproduces movie fragments at the same time in order from the top of the response data 5B. That is, the client apparatus reads binary data of movie fragments included in the data 503-1 and 503-2, data 503-3 and 503-4, and so on, and performs scalable decoding and reproduction.
- FIG. 23 is a diagram showing another example (response data 5B ′) of response data in period 1 in which the highest hierarchy is HD quality.
- the difference from the response data 5B in FIG. 7B is that the layer information such as base and enhc is expressed as “X-Representation-Id:” instead of name, and the attribute, URL, etc. are represented by “X-Representation-List” : ”And t in the period t are expressed as“ X-Media-Segment-Index: ”. Also, “1, 2” or “2” is added to “X-Representation-Id:” attached to the header part of each part.
- the proxy server forms new response data by discarding or merging the movie fragments included in the response data, but this processing is performed for the request data and response data described above. This is done using only the request line / response line, header part information, and multipart part header information, without looking at any data in the movie fragment. Therefore, the proxy server can easily handle scalable content data.
- FIG. 8 is a sequence diagram showing the above operation example, and FIG. 9 shows HTTP messages exchanged during the operation according to the sequence diagram of FIG.
- the data on the left side of FIG. 9 indicates response data 5B-1 transmitted from the content server 300 in step S12, and the data on the right side of FIG. 9 is transmitted from the proxy server 200 to the client device in step S19.
- Response data 5B-2 is transmitted from the proxy server 200 to the client device in step S19.
- the client device 100-2 requests SD quality content data. It is. Also, as a premise, it is assumed that the cache of the proxy server 200 is empty before the operation starts, and the content server 300 is delivering the movie fragment of period 1 at the start of the operation.
- the client device 100-1 transmits the multipart request data 4A to the proxy server 200 (S1).
- the proxy server 200 transfers the request data 4A as it is to the content server 300 (S2).
- the content server 300 that has received the request data 4A transmits initial response data 5A for the period 1 currently being distributed to the proxy server 200 (S3).
- the proxy server 200 transfers the initial response data 5A to the client device 100-1 as it is without caching (S4).
- the client apparatus 100-1 that has received the initial response data 5A for period 1 refers to the moov header of the first movie fragment included in the initial response data 5A, and performs an initialization process for starting playback. Furthermore, the client device 100-1 determines that the content server 300 can deliver the HD quality and SD quality live video by referring to the character strings 502-1 and 502-2 in the header portion of the initial response data 5A. To do.
- the client apparatus 100-1 since the client apparatus 100-1 receives a user instruction to reproduce HD quality video (or the HD quality video is determined in advance according to the settings and specifications of the apparatus), the client apparatus 100-1 The apparatus 100-1 transmits the HD quality request data 4B of period 1 to the proxy server 200 (S5).
- the proxy server 200 determines whether the cache includes all or part of the response data 5B (media segment) to be transmitted to the client device 100-1 for the request data 4B transmitted in S5. The determination is made by referring to the request line of the request data received (cached) in the past and the header part of the cached response data.
- the proxy server 200 transmits the request data 4B as it is to the content server 300 (S6).
- the content server 300 that has received the request data 4B transmits the response data 5B having the highest quality in the requested period 1 to the proxy server 200 (S7).
- the proxy server 200 that has received the response data 5B caches the response data 5B and transmits the response data 5B to the client device 100-1 as it is (S8).
- the client device 100-1 Upon receiving the response data 5B, the client device 100-1 sequentially decodes the 20 movie fragments included in the response data 5B and reproduces HD quality video. That is, from this point on, the client apparatus 100-1 starts to reproduce the HD quality live video.
- the client device 100-1 transmits the HD quality request data 4B for the next period (period 2) to the proxy server 200 (S9), but the same processing (ie, processing corresponding to S5 to S8) ) Is then repeated.
- the same processing ie, processing corresponding to S5 to S8
- the operation from the time point when the client apparatus 100-1 transmits the HD quality request data 4B of period 4 to the proxy server 200 (S10) will be described.
- the client device 100-2 that has received a reproduction instruction from the user via an operation unit (not shown) transmits the multipart request data 4A to the proxy server 200 (S14). Then, the processes of S15 to S17, which are the same processes as S2 to S4, are performed among the client device 100-2, the proxy server 200, and the content server 300.
- the client device 100-2 that has received the initial response data 5A of period 4 transmitted in S17 transmits the SD quality request data 4B of period 4 (S18).
- the processing unit 220 of the proxy server 200 includes all or part of the response data 5B-2 (first content data) to be transmitted to the client device 100-2 for the request data 4B transmitted in S18. It is determined whether or not the hierarchy is included in the cache. The determination is made by referring to the request line of the request data received (cached) in the past and the header part of the cached response data.
- the cache already contains the response data 5B-1 (second content data) shown on the left side of FIG. 9, but the response data 5B-1 is HD-quality response data in the uppermost layer of period 4 is there.
- the processing unit 220 receives the request data 4B when the response data 5B-1 is received, and “X-Content-Sd-Url:” “X-Content-Hd:” in the response data 5B-1 header. From the “-Url:” line, it is detected that the response data 5B-1 includes movie fragments of the base layer and the enhancement layer.
- the proxy server 200 does not make a distribution request to the content server 300 here (that is, does not transfer the request data 4B received from the client device 100-2).
- the processing unit 220 When it is determined that all the layers constituting the response data 5B-2 are included in the cache, the processing unit 220 includes the unnecessary portion (indicated by a dotted line in the left side of FIG. 9) of the response data 5B-1. Response data 5B-2 can be extracted. This processing can be easily performed by referring to the information indicating the content type (name indicating whether the movie fragment data is base or enhc in FIG. 9) described in the header part of each part of the multipart. .
- the proxy server 200 transmits the extracted response data 5B-2 to the client device 100-2 (S19). As a result, the reproduction of SD quality live video is also started in the client apparatus 100-2.
- the proxy server 200 includes a scalable video whose top layer is HD quality when the top layer receives an SD quality scalable video distribution request. Then, without making a separate distribution request to the content server 300, the scalable video with the SD hierarchy of the highest hierarchy is extracted from the cache and transmitted to the client device.
- the bandwidth load of the backbone network between the proxy server 200 and the content server 300 of the communication system 1 is smaller than the bandwidth load of the backbone network when the proxy server 200 of the communication 1 is replaced with a conventional proxy server. .
- the highest hierarchy is from the HD quality response data cache to the SD quality response data. Is performed by referring only to the request line of the request data, the header part of the response data, and the header part of each part of the multipart, and there is no need to check the data of the movie fragment itself.
- the extraction process is only a replacement process from HTTP response data to HTTP response data for deleting some parts, and thus can be realized very easily.
- FIG. 6 Next, another operation example of the communication system 1 will be described with reference to FIG. 6, FIG. 7, FIG. 10, and FIG.
- FIG. 10 is a sequence diagram showing the operation example 2.
- FIG. 11 shows some HTTP messages exchanged during the operation according to the sequence diagram of FIG.
- FIG. 11A shows the multipart request data 4C transmitted from the client apparatus 100-2 in S38.
- the data on the left side of FIG. 11B shows the response data 5B-1 transmitted from the content server 300 in step S32.
- the data on the right side of FIG. 11B is the proxy data in step S39.
- Response data 5B-3 transmitted from the server 200 to the client device is shown.
- the live camera is already generating the video to be transmitted as the response data of the period t + 1 (or a period thereafter).
- the operation example 2 is similar to the operation example 1. However, when the communication system 1 operates according to the operation example 2, the time lag described above is smaller in the client device 100-2 than in the operation example 1. You can play video.
- the operation of the operation example 2 will be specifically described with reference to FIG. 10, but the preconditions at the operation start time of the operation example 2 are the same as those of the operation example 1.
- the client device 100-2 that has received the initial response data 5A of period 4 transmitted in S37 transmits the SD quality request data 4C of period 4 (S38).
- the request data 4C is data in which a character string “X-Range: now-and-later-only” is added to the end of the request data 4B.
- the proxy server 200 that has received the request data 4C performs the following processing.
- the processing unit 220 of the proxy server 200 includes all or a part of the hierarchy constituting the response data 5B-3 to be transmitted to the client device 100-2 for the request data 4C transmitted in S38. Judge whether or not. The determination is made with reference to the request line of the request data received (cached) in the past and the header part of the cached response data. Here, it is determined that all layers (that is, SD quality layers) constituting the response data 5B-3 are included. Then, the processing unit 220 deletes data relating to the ten unnecessary movie fragments constituting the enhancement layer bit stream from the cache response data 5B-1. Up to this point, the operation is the same as that when the request data 4B is received, but the processing unit 220 further performs the following operation.
- the processing unit 220 deletes a part of the data related to the ten movie fragments constituting the base layer bit stream from the cache response data 5B-1. Deletion is performed by referring to the content type information (name indicating base or enhc) of the header part of each part constituting the multipart.
- data including a time stamp having a small value is preferentially deleted.
- the number of data to be deleted is the length of the period from when the proxy server 200 receives the request data 4B of the period 4 from the client apparatus 100-1 to when the request data 4C of the client apparatus 100-2 is received.
- the number depends on the size. That is, by deleting the movie fragments corresponding to the length of this period, the playback positions of the content played back by each client device connected to the proxy server 200 are substantially aligned.
- the client device requested later can also reduce the time lag from the generation of an image constituting the live video by the live camera to the playback of the image on the client device (that is, the client device in real time). It can be played back so that a near video can be displayed on the display unit).
- five data including values from 40 to 44 as time stamps are deleted from the data related to the 10 movie fragments constituting the base layer. The deletion is performed by referring to the time stamp information described in the header part of each part of the multipart.
- the processing unit 220 deletes the portion surrounded by the dotted line from the left response data 5B-1 in FIG. 11B, and extracts the right response data 5B-3 in FIG. 11B. .
- the proxy server 200 transmits the extracted response data 5B-3 to the client device 100-2 (S39). As a result, the reproduction of the live video is also started on the client device 100-2.
- the client apparatus 100-2 since the reproduction is started from the movie fragment whose time stamp value is 45, the client apparatus 100- is compared with the first embodiment in which the reproduction is started from the movie fragment whose time stamp value is 40. 2, the time lag between the video being played back and the video being generated by the live camera is reduced.
- FIG. 12 is a sequence diagram showing an operation example 3.
- FIG. 13 shows HTTP messages exchanged during the operation according to the sequence diagram of FIG.
- FIG. 13A shows the request data 4D that the proxy server 200 transmits to the content server 300 in step S68.
- the upper left data in FIG. 13B indicates the response data 5C transmitted from the content server 300 in step S69
- the lower left data in FIG. 13B indicates the content server 300 in step S61.
- the response data 5B-4 transmitted from is shown.
- the data on the right side of FIG. 13B shows response data 5B-5 that the proxy server 200 transmits to the client device in step S70.
- This operation example is different from operation example 1 and operation example 2, and after client device 100-2 requests SD quality content data for the same live video content data, client device 100-1 performs HD quality. It is an operation example when requesting the content data. Also, as a premise, it is assumed that the cache of the proxy server 200 is empty before the operation starts, and the content server 300 is delivering a movie fragment of period 0 at the start of the operation.
- the client device 100-2 transmits the multipart request data 4A to the proxy server 200 (S51).
- the proxy server 200 transfers the request data 4A as it is to the content server 300 (S52).
- the content server 300 that has received the request data 4A transmits to the proxy server 200 initial response data 5A of period 0 that is currently being distributed (new distribution can be started to the client device 100-2) (S53).
- the proxy server 200 transfers the initial response data 5A to the client device 100-2 as it is without caching (S54).
- the client device 100-2 Upon receiving the initial response data 5A of period 0, the client device 100-2 transmits the SD quality request data 4B of period 0 to the proxy server 200 (S55).
- the processing unit 220 of the proxy server 200 includes, in the cache, all or part of the hierarchy constituting the response data 5B (media segment) to be transmitted to the client device 100-2 for the request data 4B transmitted in S55. Judge whether or not.
- the proxy server 200 transmits the request data 4B as it is to the content server 300 (S56). As described above, the determination is performed with reference to the request line of the request data received (cached) in the past and the header portion of the cached response data.
- the content server 300 that has received the request data 4B transmits response data 5B having SD quality of the highest hierarchy in the requested period 0 to the proxy server 200 (S57).
- the processing unit 220 of the proxy server 200 that has received the response data 5B caches the response data 5B. Then, the proxy server 200 transmits the response data 5B as it is to the client device 100-2 (S58).
- the client device 100-1 that has received the reproduction instruction from the user via the operation unit (not shown) transmits the multipart request data 4A to the proxy server 200 (S63). Then, the processes of S64 to S66, which are the same processes as S52 to S54, are performed among the client device 100-1, the proxy server 200, and the content server 300.
- the client device 100-1 that has received the initial response data 5A of period 2 transmitted in S66 transmits the HD quality request data 4B of period 2 (S67).
- the processing unit 220 of the proxy server 200 includes, in the cache, all or part of the hierarchy constituting the response data 5B-5 to be transmitted to the client device 100-1 for the request data 4B transmitted in S67. Judgment is made. The determination is made by referring to the request line of the request data received (cached) in the past and the header part of the cached response data.
- the cache already includes the response data 5B-4 shown in the lower left of FIG. 13B, but the response data 5B-4 is response data having SD quality at the highest level in period 2.
- the SD quality hierarchy constituting the response data 5B-5. It can be seen from the request line of the request data 4B that requested the response data 5B-4 that the response data 5B-4 includes the SD quality layer. Further, it can be seen from the “X-Cntent-Sd-Url:” and “X-Cntent-Hd-Url:” lines in the header portion of the response data 5B-4 that there is corresponding HD quality data.
- the proxy server 200 If it is determined that a part of the hierarchy constituting the response data 5B-5 is included in the cache, the proxy server 200 requests only the remaining necessary hierarchy (that is, the HD quality hierarchy in this case). Is transmitted to the content server 300 (S68).
- the content server 300 that has received the request data 4D transmits response data 5C (third content data) of only HD quality for period 2 to the proxy server 200 (S69).
- the processing unit 220 of the proxy server 200 merges the cached response data 5B-4 (second content data) and the response data 5C transmitted in S69. That is, the portion surrounded by the alternate long and short dash line in the upper left diagram of FIG. 13B (that is, the data related to 10 movie fragments constituting the enhancement layer bit stream included in the response data 5C), and FIG.
- the response data 5B-5 including both of the portion surrounded by the broken line in the lower left diagram (that is, the data related to the ten movie fragments included in the response data 5B-4 and constituting the base layer bitstream). Is generated.
- This processing can be easily performed by referring to information indicating the content type (name indicating whether the movie fragment data is base or enhc in FIG. 13) and time stamp information described in the header part of each part of the multipart. It can be carried out.
- the proxy server 200 transmits the response data 5B-5 (first content data) generated by merging to the client device 100-1 (S70). As a result, the reproduction of the live video is also started on the client device 100-1.
- the proxy server 200 includes a scalable video whose top layer is SD quality when the top layer receives an HD quality scalable video distribution request. Then, a distribution request for requesting only the HD quality video is transmitted to the content server 300 (in the conventional proxy server, the distribution request for the scalable video with the highest hierarchy HD quality is transmitted to the content server as it is).
- the conventional proxy server receives scalable video including two layers of HD quality and SD quality from the content server, but the proxy server 200 receives scalable video of only the HD quality layer from the content server. Will do.
- the bandwidth load of the backbone network between the proxy server 200 and the content server 300 of the communication system 1 is smaller than the bandwidth load of the backbone network when the proxy server 200 is replaced with a conventional proxy server.
- the determination of whether or not all or a part of the hierarchy constituting the response data to be transmitted is included in the cache, and the process of forming the response data of scalable video with the highest hierarchy being HD quality are as follows.
- the request line of the request data, the header part of the response data, and the header part of each part of the multipart are referred to, and there is no need to check the movie fragment data itself.
- the process of forming response data can be realized extremely easily because it is merely a replacement process from HTTP response data to HTTP response data in which the data of each part of the multipart is arranged in order.
- the communication system according to the present embodiment even when there are a large number of client apparatuses that request different distributions, it is possible to distribute content data with a reduced processing load on the proxy server.
- (Operation example 4) 14 and 15 are sequence diagrams showing an operation example 4. The processing of each step represented by the sequence diagram of FIG. 15 is started after the processing of each step represented by the sequence diagram of FIG. 14 is completed. .
- the proxy server 200 receives the SD quality request data 4B of the period t from the client apparatus 100-2. If the cache does not contain response data for the period t, the proxy server 200 transmits the HD quality request data 4B for the period t to the content server 300.
- the client device 100-1 that has received a reproduction instruction from the user via an operation unit (not shown) transmits multipart request data 4A to the proxy server 200 (S93). Then, the processes of S94 to S96, which are the same processes as S64 to S66, are performed among the client device 100-1, the proxy server 200, and the content server 300.
- the client device 100-1 that has received the initial response data 5A of period 3 transmitted in S96 transmits the HD quality request data 4B of period 3 (S97).
- the processing unit 220 of the proxy server 200 includes, in the cache, all or part of the hierarchy of the response data 5B to be transmitted to the client device 100-1 for the request data 4B transmitted in S97. judge. As described above, the determination is performed with reference to the request line of the request data received (cached) in the past and the header portion of the cached response data.
- the SD quality response data 5B is recorded in the uppermost hierarchy of period 3 transmitted in step S91. Therefore, it is determined here that a part of the hierarchy (that is, the SD quality hierarchy) constituting the response data 5B to be transmitted to the client apparatus 100-1 is included in the cache.
- the proxy server 200 determines that the cache includes a part of the layers constituting the response data 5B to be transmitted to the client device 100-1 (in other words, a movie fragment including the part of layers), the proxy server 200 The request data 4B transmitted in S97 is transferred to the content server 300 as it is (S98).
- the content server 300 that has received the request data 4B transmits the response data 5B having the HD quality of the highest layer in the period 3 to the proxy server 200 (S99). Further, the processing unit 220 of the proxy server 200 overwrites the SD quality response data 5B already cached in S91 with the SD quality response data 5B newly received in S99 and the HD quality response data 5B. . In addition, you may make it record on the vacant area
- the client device 100-1 is playing HD quality video
- the client device 100-2 is playing SD quality video.
- the client apparatus 100-1 transmits the HD quality request data 4B of the period t (t ⁇ 4)
- the client apparatus 100-2 transmits the SD quality request data 4B of the period t
- the proxy server 200 receives request data from each client device in that order.
- the client apparatus 100-2 transmits request data 4B of SD quality for period 4 (S101).
- the processing unit 220 of the proxy server 200 that has received the request data 4B includes, in the cache, all or part of the hierarchy constituting the response data 5B to be transmitted to the client device 100-2 for the request data 4B transmitted in S101. Determine if it is. Since the response data of period 4 is not recorded in the cache, the proxy server 200 determines that “not included”.
- the proxy server 200 further performs the following processing.
- the processing unit 220 reproduces the same content at a higher hierarchy than the received request data 4B for all other client devices (here, only the client device 100-1) that have already been connected. It is determined whether a client device exists. When it is determined that the processing unit 220 exists, the processing unit 220 detects which layer is the highest layer (highest resolution) of the content reproduced by the client device (that is, the number of layers M of the content). Determination and detection can be performed by referring to a request line of request data received (cached) in the past and a header portion of cached response data.
- S97 which is a communication processing step with the immediately preceding client device 100-1, the highest layer in period 3 receives HD quality request data from the client device 100-1.
- the processing unit 220 may specify a client device that is playing back content at the highest level among the plurality of client devices. Then, the processing unit 220 may detect the number M of layers of content being reproduced by the identified client device.
- the processing unit 220 recognizes the highest resolution (in this case, the HD quality of the client device 100-1) in the video being played back by each other client device.
- the proxy server 200 transmits the request data 4B of the highest resolution (HD quality) recognized in the period 4 to the content server 300 (S102).
- the content server 300 Upon receiving the request data 4B, the content server 300 transmits the response data 5B-1 having the highest quality in the period 4 (S103).
- the proxy server 200 caches the received response data 5B-1, and from the cached response data 5B-1 (data shown on the left side of FIG. 9), the response data 5B-2 (in FIG. Extract data shown on the right).
- the proxy server 200 transmits the extracted response data 5B-2 to the client device 100-2 (S104).
- the client device 100-1 transmits request data 4B of HD quality for period 4 (S105).
- the processing unit 220 of the proxy server 200 that has received the request data 4B caches all or part of the hierarchy constituting the response data 5B-1 to be transmitted to the client device 100-1 for the request data 4B transmitted in S105. It is judged whether it is included in.
- the cache includes response data 5B-1 (response data cached immediately after the processing of S103) itself to be transmitted to the client device 100-1.
- the proxy server 200 Since the proxy server 200 determines that the response data 5B-1 itself to be transmitted to the client device 100-1 is included in the cache, the proxy server 200 reads the response data 5B-1 from the cache and transmits it directly to the client device 100-1. (S106).
- the proxy server 200 transmits the HD quality request data of the period t to the content server 300.
- the HTTP communication performed between the proxy server 200 and the content server 300 in order for both the client devices 100-1 and 100-2 to reproduce the video of the period t is always at most one round trip. This is the same even when the number of client devices that are playing back video is increased to three or more.
- FIG. 16 is a flowchart showing the operation of the proxy server 200.
- the request receiving unit 210 of the proxy server 200 receives request data from the client device (S301).
- the processing unit 220 supplied with the request data from the request receiving unit 210 determines whether or not response data (media segment) for a period specified by the request data is cached in the cache unit 230 (S302).
- the processing unit 220 determines whether the response data cached in the cache unit 230 is the response data itself to be transmitted to the client device (S303). That is, it is determined whether the highest layer of the media segment to be transmitted to the client device matches the highest layer of the media segment recorded in the cache.
- the response data (second content data) cached in the cache unit 230 includes all layers constituting the response data (first content data) to be transmitted to the client device (in other words, the processing unit 220)
- a set of hierarchies constituting the response data cached in the cache unit 230 has a hierarchy that does not constitute response data to be transmitted to the client device to a set of hierarchies constituting the response data to be sent to the client device.
- Whether the set is added as an element is determined (S304). That is, it is determined whether the highest layer of the media segment cached in the cache unit 230 is higher than the highest layer of the media segment to be transmitted to the client device.
- the processing unit 220 uses the response data of the cache unit 230 as the highest response data to be transmitted to the client device.
- Response data to be transmitted to the client device is extracted by deleting data in a layer higher than the layer (contents to be played that do not constitute the first content data) (S305).
- the processing unit 220 is higher than the highest hierarchy of the response data of the cache unit 230.
- Request data for requesting distribution is generated only for higher-level data, and the request transmission unit 240 transmits the request data generated by the processing unit 220 to the content server 300 (S306).
- the response receiving unit 250 receives response data corresponding to the request data transmitted by the request transmitting unit 240 (S307).
- the processing unit 220 generates response data to be transmitted to the client device by merging the response data of the cache unit 230 and the response data received by the response receiving unit 250. (S308).
- processing unit 220 caches the merged response data in the cache unit 230 (S313).
- the processing unit 220 determines that the request reception unit 210 is in S301.
- the received request data is transmitted as it is to the content server 300 (S309).
- the response receiving unit 250 receives response data corresponding to the request data transmitted by the request transmitting unit 240 (S310), and the processing unit 220 caches the response data received by the response receiving unit 250 in the cache unit 230. (S311).
- response data is transmitted to the client device.
- FIG. 24 is a flowchart showing the operation of the proxy server 200 according to the fourth operation example. As can be seen from the flowchart of FIG. 24, this flowchart replaces the steps S308 and S309 in the flowchart of FIG. 16 with the “processing unit 220 caches the response data received by the response receiver 250” in S314. It is expressed in the replaced form.
- proxy server 200 receives the request data 5A requesting the response data 5B-5 including the SD quality video and the HD quality video from the client device 100-1
- the processing unit 220 sets the response data 5B. It is determined whether or not response data including either SD quality or HD quality video to be included in ⁇ 5 is recorded in the cache unit 230.
- the processing unit 220 determines that the response data 5B-4 including the SD quality video is recorded in the cache unit 230, and is recorded in the cache unit 230 as illustrated in FIG. 13B.
- the requested response data 5B-5 is generated using the response data 5B-4. That is, the proxy server 200 receives response data including only HD quality video from the content server 300.
- response data 5B-5 including SD quality and HD quality video when the conventional proxy server receives request data 5A requesting response data 5B-5 including SD quality and HD quality video from the client device 100-1, the response data 5B-5 itself is recorded in the cache. If not, response data 5B-5 including both HD quality and SD quality videos will be received from the content server 300.
- the processing unit 220 estimates that the HD quality request data 4B will be received.
- the request transmission unit 240 requests the content server 300 for the response data 5B-1 having the highest layer of HD quality. Thereafter, the processing unit 220 caches the response data 5B-1 received from the content server 300 in the cache unit 230.
- the processing unit 220 extracts the response data 5B-2 having SD quality as the highest hierarchy from the cached highest response data 5B-1 as the highest hierarchy. Then, the response transmission unit 260 transmits the response data 5B-2 to the client device. In addition, for the HD quality request data 4B received thereafter, the already cached HD quality response data 5B-1 is transmitted. Accordingly, the request to the content server 300 is made only once for requesting response data 5B-1 having the highest quality HD.
- the proxy server 200 can suppress the network bandwidth load between the content server and the content server due to relaying the spatial resolution scalable video to a large number of client devices, as compared with the conventional proxy server.
- the communication system 1a includes client apparatuses 100-1 and 100-2, a proxy server 200a, and a content server 300 '.
- the content server 300 transmits live video content data in units of media segments to the client device that is reproducing the live video.
- the content server 300 ′ distributes live video content data to the client device that is reproducing the live video in the chunk format that is the HTTP protocol transfer coding format.
- the chunk format means that chunks including chunk data and chunk size information indicating the chunk data size are sequentially stored in the body part of the HTTP message, and “0” indicating the end of the chunk after the last stored chunk.
- This is a transfer coding format in which a footer indicating the data size of the entire HTTP message is attached, and it is a transfer format that enables transmission even for contents whose total data size is not known in advance.
- response data (5D-1) sequentially packed in chunks from the top data of the content to be distributed is returned for one request data (4F). Furthermore, chunks (movie fragments) in the cached response data are deleted from the cache in order from the past according to the size of the cache.
- the configuration of the communication system 1a of the present embodiment is different from the configuration of the communication system 1 of the first embodiment only in the following points.
- the processing unit 220a of the proxy server 200a determines that the highest hierarchy in the chunk format (remaining in the cache) as shown in the diagram on the left side of FIG.
- the uppermost hierarchy in the chunk format as shown on the right side of FIG. 6 performs processing for extracting SD quality data.
- the processing unit 320 ′ of the content server 300 ′ generates chunk format response data and supplies the response data to the response transmission unit 330 when the request data is supplied from the request reception unit 310.
- FIG. 18 is a sequence diagram showing the above operation example.
- FIG. 19 shows an HTTP message handled in the operation example shown in the sequence diagram of FIG.
- FIG. 19A shows the request data 4F transmitted from the client device 100-1 in step S111.
- the diagram on the left side of FIG. 19B shows response data 5D-1 that the content server 300 'transmits to the proxy server 200a in step S113.
- the diagram on the right side of FIG. 19B shows the response data 5D-2 that the proxy server 200a transmits to the client device 100-2 in step S116.
- the content server 300 ′ uses the data 507 relating to the movie fragment (that is, the binary data of the movie fragment and the meta information (time stamp etc.) relating to the movie fragment) as the chunk data.
- a character string 506 in the left diagram of FIG. 19B indicates the size of the chunk (the character string 506 is not numeric data but hexadecimal numeric data).
- This operation example is an operation example in the case where the client apparatus 100-2 requests the SD quality request data after the client apparatus 100-1 requests the HD quality request data for the same live video content data. It is. As a premise, the cache of the proxy server 200a is assumed to be empty before the operation starts. In the sequence diagram, the exchange of request data 4A and response data 5A between the client apparatuses 100-1 and 100-2 and the content server 300 'is omitted.
- the client device 100-1 transmits the HD quality request data 4F to the proxy server 200a (S111).
- the proxy server 200a determines whether or not the movie fragment requested from the client device 100-1 is included in the cache. Here, since the cache is empty, the proxy server 200a transmits the request data 4B as it is to the content server 300 '(S112).
- the content server 300 ′ that has received the request data 4F generates a response message 5D-1 that stores the extension layer and base layer movie fragments (from time 0 in the figure) to be distributed in the chunk format at the time of reception, It transmits to the proxy server 200a (S113).
- the proxy server 200a caches the received response message 5D-1 and transmits it to the client device 100-1 (S114).
- the content server 300 ′ that distributes data in the chunk format receives one request data 4 ⁇ / b> F
- the content server 300 ′ sequentially transmits movie fragments constituting the content data up to the last fragment. Therefore, the chunks in the response message 5D-1 recorded in the cache unit 230 of the proxy server 200a are deleted sequentially from the oldest one according to the size of the cache.
- the client device 100-2 transmits the SD quality request data 4F to the proxy server 200a (S115).
- the processing unit 220a of the proxy server 200a determines whether or not the SD quality movie fragment is cached in the cache unit 230. Specifically, the processing unit 220a makes a determination by referring to the request line of request data (cached in the cache unit 230) received in the past by the proxy server 200a and the header part of the cached response data.
- the processing unit 220a determines that the cache unit 230 has cached the base layer chunks (movie fragments), the oldest base layer chunks (movie fragments) remaining in the cache unit 230 are listed in chronological order. Extracted to form response data 5D-2.
- the processing unit 220a assumes that the base layer movie fragment with a time stamp of 30 is the oldest movie fragment remaining in the cache unit 230, and sends the response data 5D-2 to be transmitted to the client device 100-2. Form.
- the extraction may be performed by referring to header information indicating the content type in the MIME part data included in the chunk.
- the proxy server 200a transmits the response data 5D-2 to the client device 100-2 (S116).
- the proxy server 200a includes a scalable video whose top layer is HD quality when the top layer receives an SD quality scalable video distribution request. For example, scalable video with SD quality at the highest level is extracted from the cache and transmitted to the client device.
- the bandwidth load of the backbone network between the proxy server 200a of the communication system 1a and the content server 300 ′ is smaller than the bandwidth load of the backbone network when the proxy server 200a of the communication 1 is replaced with a conventional proxy server.
- the chunk format data includes the chunk size for each chunk, but does not include the entire data size in advance, so even if some chunks are lost during communication, the client device does not require retransmission. Can be displayed.
- the client device can display the video more stably.
- the proxy server 200a performs adaptive rate control when the number of connected client devices increases and the network traffic between the client device and the proxy server 200a increases beyond a certain level. May be.
- the adaptive rate control is a process of transmitting response data in which part or all of the HD quality movie fragment is deleted to the client device even when the client device requests HD quality video. .
- the communication system 1b includes client devices 100-1 and 100 ', a proxy server 200b, and a content server 300 as shown in FIG.
- the two client apparatuses 100-1 and 100-2 both request data transmission in the multipart format.
- one of the two client apparatuses The client device 100 ′ requests data transmission in a single part format.
- the configuration of the communication system 1a of the present embodiment is different from the configuration of the communication system 1 of the first embodiment only in the following points.
- the request transmission unit 110 ′ of the client device 100 ′ transmits request data for requesting data transmission in a single part format.
- the processing unit 220b of the proxy server 200b starts from the response data 5B-1 with the highest hierarchy in HD quality (multipart format) as shown in the diagram on the right side of FIG. 22B, to the left of FIG. 22B. A process of extracting data in the SD quality single part format as shown in the lower diagram is performed.
- the processing unit 220b converts the request data 4E into the multipart request data 4A. It has become.
- FIG. 21 is a sequence diagram showing the above operation example. Further, the diagram on the left side of FIG. 22A shows request data 4E that the client device 100 'transmits to the proxy server 200b in step S125.
- the client apparatus 100-1 transmits the HD quality request data 4B of period 4 to the proxy server 200a (S121).
- the processing unit 220b of the proxy server 200b includes, in the cache, all or part of the hierarchy constituting the response data 5B (media segment) to be transmitted to the client device 100-1 for the request data 4B transmitted in S121. Judge whether or not. Here, since the cache is empty, the proxy server 200 transmits the request data 4B as it is to the content server 300 (S122).
- the content server 300 that has received the request data 4B transmits the response data 5B-1 having the highest quality in the requested period 4 to the proxy server 200 (S123).
- the proxy server 200 that has received the response data 5B-1 caches the response data 5B-1, and transmits the response data 5B-1 as it is to the client device 100-1 (S124).
- the client device 100 ′ transmits request data 4 ⁇ / b> E requesting to distribute SD quality video in a single part format to the proxy server 200 b (S ⁇ b> 125).
- the fact that the request is in the single part format is indicated by the fact that the character string “multipart / media-segment” is not declared in the Accept of the header part of the request data 4E.
- multi-part non-correspondence scalable decoding is impossible, and it can be seen that data that can be decoded by the client apparatus 100 ′ is limited to SD layer data of the base layer.
- the processing unit 220b of the proxy server 200b that has received the request data 4E receives the character string “multipart / media-segment” in the Accept of the header part of the request data 4E. Is added to generate multipart request data 4A.
- the proxy server 200b transmits the multipart request data 4A to the content server 300 (S126).
- the content server 300 transmits the initial response data 5A for the period 4 shown in the upper left diagram of FIG. 22B to the proxy server 200b (S127).
- the processing unit 220b of the proxy server 200b that has received the initial response data 5A of period 4 determines whether response data (media segment) including the base layer (SD quality) of period 4 in the hierarchy is recorded in the cache. As described above, the determination is made with reference to the request line of the request data received (cached) in the past and the header portion of the cached response data. Immediately after S123, the response data 5B-1 of the enhancement layer (HD quality) at the highest hierarchy in period 4 is recorded in the cache, so it is determined here that it is “recorded in the cache”.
- the processing unit 220b If it is determined that “recorded in the cache”, the processing unit 220b generates response data 5E in the single part format for period 4 to be transmitted to the client apparatus 100 '.
- the processing unit 220b uses the response line “HTTP / 1.1 200 OK” in the response data 5B-1 and the header indicating the content type in the MIME part as the header part of the response data 5E to be transmitted to the client device 100 ′. Extract Content-Type: video / mp4 ”.
- the processing unit 220b forms the body part of the response data 5E as follows. That is, the processing unit 220b receives the header of the first movie fragment (fragment B40) from the moof header in S127 among the base layer movie fragments included in the response data 5B-1 cached in S124. Replace with the moov header of the first movie fragment (fragmentB0) of the base layer in the initial response data 5A. In addition, data obtained by combining fragment B40, fragment B41,..., And fragment B49 (the part surrounded by a broken line in the right side of FIG. 22B) after header replacement is used as data of the body part of response data 5E. . Processes other than the process of replacing the header from the moov header to the moof header are performed without referring to the data in the movie fragment by referring to the header part of each part of the multipart.
- the proxy server 200b transmits the response data 5E to the client device 100 '(S128).
- the content server 300 distributes the client device 100-1 that supports playback of scalable video or the client device 100 ′ that does not support playback of scalable video. Live video can be played.
- the communication system 1 (1a, 1b) includes one content server 300 (300 ′), one proxy server 200 (200a or 200b), and two client devices 100-1, 100-2. (100-1, 100 ′) are provided, but the number of servers and client devices constituting the communication systems 1, 1a, 1b is naturally not limited to this.
- the number of layers constituting the spatial scalable video is two, that is, the basic layer and the enhancement layer.
- spatial scalable video that is, spatial scalable video consisting of up to three videos of different quality
- a layer that holds QCIF video a layer that holds SD video
- a layer that holds HD video a layer that holds QCIF video.
- a layer that holds SD video a layer that holds SD video.
- a layer that holds HD video a layer that holds QCIF video.
- the content data relayed by the relay device according to the present invention is not limited to this, and may be SNR scalable video content data having a plurality of hierarchies with different quantization accuracy.
- the content data is content data of chroma scalable video having a plurality of layers having different chroma formats (for example, three layers of 4: 2: 0, 4: 2: 2, 4: 4: 4). Also good.
- time-scalable video content data having a plurality of hierarchies with different frame rates may be used.
- the dynamic content data may be scalable audio content data having a plurality of hierarchies (eg, 16 bits, 8 bits, 4 bits) having different numbers of quantization bits.
- multi-language video live distribution can be given. That is, it is also possible to apply each of the above embodiments of the present invention by using video data as a base layer and interpreting each of audio data 1, 2,. Also, the above embodiments of the present invention can be applied as an extension layer in which video data + audio data 1 is used as a base layer and audio data 2, 3,. is there. (That is, by using an extension layer, it becomes possible to support languages other than the voice data 1. For example, the voice data 1 is Japanese voice, the voice data 2 is English, and the voice data 3 is French voice.
- Base layer only The client device (user) that plays back the video content plays (views) video content in Japanese, and the client device (user) that can play the enhancement layer obtains the audio data 2 or 3 and plays the video content in English or French. Furthermore, it is also possible to apply each of the above embodiments of the present invention using video data + audio data as a base layer and superimposing images or superimposing video by subtitles or picture-in-picture as an extension layer. (In other words, subtitles can be added and changed, and privilege videos can be viewed by using an extension layer). (Appendix 2) The length of the movie fragment period is not limited to 1 second. Further, the length of the media segment period is not limited to 10 seconds.
- the length of the movie fragment period may be 0.5 seconds in accordance with GOP (Group of Picture), which is the unit of MPEG-4 encoding, or may be as long as 2 seconds. is there.
- the content server 300 may be configured such that the length of the media segment period can be appropriately changed to a length set by the user according to the frequency of occurrence of the HTTP message. That is, depending on the purpose and situation, the user can reduce the frequency of request messages and response messages by setting the length of the media segment period to 30 seconds or 1 minute, or switching frequently. If it occurs, the response may be accelerated by 5 seconds or the like.
- the present invention can be applied to data formats other than movie fragments as long as the content data can be handled by being divided into predetermined lengths. That is, the data format that can be handled by the communication system of the present invention is not limited to the movie fragment format.
- the communication system of the present invention can be configured using MPEG-2 PES (Packetized Elementary Stream) packets and MPEG-2 TS (Transport Stream) TS packets. That is, the communication system of the present invention stores content data in an HTTP message in MIME multipart format for each unit data (PES packet, TS packet) divided into a predetermined length.
- the proxy server can perform filtering and handling of the stored data using the header information of the HTTP message without looking at the contents of the data recorded in each part of the multipart.
- ') May be realized in hardware by a logic circuit formed on an integrated circuit (IC chip), or may be realized in software using a CPU (Central Processing Unit).
- the client device 100-1, the proxy server 200, and the content server 300 expand the CPU that executes the instructions of the program that realizes each function, the ROM (Read Only Memory) that stores the program, and the program.
- a RAM Random Access Memory
- a storage device such as a memory for storing the program and various data, and the like are provided.
- An object of the present invention is to provide program codes (execution format program, intermediate code program, source program) of control programs for the client device 100-1, the proxy server 200, and the content server 300, which are software for realizing the functions described above.
- the computer-readable recording medium is supplied to the client device 100-1, the proxy server 200, and the content server 300, and the computer (or CPU or MPU) reads the program code recorded on the recording medium. It can also be achieved by executing.
- Examples of the recording medium include tapes such as magnetic tapes and cassette tapes, magnetic disks such as floppy (registered trademark) disks / hard disks, and disks including optical disks such as CD-ROM / MO / MD / DVD / CD-R.
- IC cards including memory cards
- semiconductor memories such as mask ROM / EPROM / EEPROM / flash ROM, or PLD (Programmable logic device) or FPGA (Field Programmable Gate Array) Logic circuits can be used.
- the program code may be supplied to the client device 100-1, the proxy server 200, and the content server 300 via a communication network.
- the communication network is not particularly limited as long as it can transmit the program code.
- the Internet intranet, extranet, LAN, ISDN, VAN, CATV communication network, virtual private network (Virtual Private Network), telephone line network, mobile communication network, satellite communication network, etc. can be used.
- the transmission medium constituting the communication network may be any medium that can transmit the program code, and is not limited to a specific configuration or type.
- wired lines such as IEEE 1394, USB, power line carrier, cable TV line, telephone line, ADSL (Asymmetric Digital Subscriber Line) line, infrared rays such as IrDA and remote control, Bluetooth (registered trademark), IEEE 802.11 wireless, HDR ( It can also be used by wireless such as High Data Rate, NFC (Near Field Communication), DLNA (Digital Living Network Alliance), mobile phone network, satellite line, and terrestrial digital network.
- wired lines such as IEEE 1394, USB, power line carrier, cable TV line, telephone line, ADSL (Asymmetric Digital Subscriber Line) line, infrared rays such as IrDA and remote control, Bluetooth (registered trademark), IEEE 802.11 wireless, HDR ( It can also be used by wireless such as High Data Rate, NFC (Near Field Communication), DLNA (Digital Living Network Alliance), mobile phone network, satellite line, and terrestrial digital network.
- wired lines such as IEEE 1394, USB, power line carrier, cable TV line, telephone line, ADSL (Asymmetric Digital Subscriber Line) line,
- the second content data is It is determined whether all the reproduction target content constituting the first content data and the reproduction target content not constituting the first content data are included, and the determination means “includes both”. If it is determined, the generation means preferably extracts the first content data to be generated from the second content data.
- the number of playback target contents constituting the first content data to be transmitted to the playback device is the number of playback target contents configuring the second content data recorded in the recording unit.
- the first content data can be generated from the second content data without imposing a load on the network with the transmission device.
- the relay device When the determination unit determines that the second content data is recorded in the recording unit, the relay device includes the second content data among all the reproduction target contents constituting the first content data.
- the information processing apparatus further includes an acquisition unit that acquires from the transmission device third content data that includes content to be reproduced that is not included in the content data, and the generation unit includes the second content data and the third content data. It is desirable to generate the first content data by using it.
- the number of playback target contents constituting the first content data to be transmitted to the playback device is the number of playback target contents configuring the second content data recorded in the recording unit. Even if the number is larger than the number, the first content data can be generated from the second content data.
- the relay device is a relay device that receives the request from a plurality of playback devices, and the N pieces of playback target content are hierarchical data of N layers having different qualities, and are next received from each playback device.
- the acquisition unit further includes an acquisition unit configured to acquire second content data composed of hierarchical data of M layers from the transmission device. It is desirable.
- the relay device requests the first content data having the same content and different number of layers from the plurality of playback devices, the second content of the content The number of times data is acquired from the transmitting device is at most once.
- the relay device is a relay device that receives the request from a plurality of playback devices, and the N pieces of playback target content are N layer hierarchical data having different qualities, and the playback device receives the request from the playback device.
- the playback device receives the request from the playback device.
- it is determined whether or not it is scheduled to receive a request for the first content data composed of more layers from another playback device, and when it is determined to be scheduled
- acquisition means for acquiring content data including hierarchical data of M hierarchical levels from the transmission device.
- the relay device when the relay device receives a request for the first content data having the number of layers M ′ from a certain playback device, the relay device receives the first number of layers M (> M ′) from the other playback devices.
- the content data of the number of layers M is acquired from the transmission device as long as the second content data is not recorded in the recording unit. Therefore, when receiving a request for the first content data of the number of hierarchies M ′ or less later, there is no need to acquire the content data from the transmitting device.
- the content data is transmitted and received as a multipart HTTP message.
- Each part of the HTTP message includes a content to be reproduced and information indicating the quality of the content to be reproduced. It is desirable that they are recorded separately.
- the information is not recorded as a part of the reproduction target content, but is recorded separately from the reproduction target content.
- the reproduction target content of a specific quality is extracted from the HTTP message including a plurality of reproduction target contents having different qualities
- the reproduction target content itself is analyzed by referring to the information of each part. There is a further effect that it can be easily extracted.
- examples of a method for recording the information separately from the content to be reproduced include a method for recording the information as a header associated with the content to be reproduced.
- the relay device it is preferable that information indicating the quality of all the reproduction target contents included in the HTTP message is recorded in the header portion of the HTTP message.
- whether the relay device can extract the playback target content of the requested quality from the content data when the playback device requests to relay the playback target content of a specific quality. Can be immediately grasped by referring to the information of the header part of the HTTP message.
- the relay device has the content data as a chunk format HTTP message.
- the playback device can stably play back the first content data even when a part of the content data being communicated is lost.
- the transmission unit transmits the first content data as the HTTP message, and the generation unit configures the first content data in each part of the HTTP message.
- the relay device changes the number of the fragments included in the HTTP message to be transmitted to the playback device according to the time when the request is received from the playback device.
- the relay device can further reduce the time lag between the time when the reproducing device reproduces the fragment portion and the time when the transmitting device transmits the fragment.
- the relay apparatus When the request is a request to transmit the first content data including at most one reproduction target content as an HTTP message in a single part format, the relay apparatus sends the request to the reproduction target content.
- the relay apparatus is configured in a case where the transmitting apparatus only supports transmission of an HTTP message in a multipart format and the reproducing apparatus requests to reproduce an HTTP message in a single part format. Even if it exists, there exists the further effect that 1st content data can be reproduced
- the present invention can also be realized as a communication system including the relay device and the playback device.
- the present invention can also be realized as a communication system including the relay device, the playback device, and the transmission device.
- it is a program for operating the playback device according to the present invention, and is a relay control program characterized by causing a computer to function as each of the above-mentioned means, and a computer readable recording the relay control program Such recording media are also included in the scope of the present invention.
- the communication system according to the present invention can be widely used as a video distribution system.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
プロキシ(200)は、クライアント(100-1)からSD映像およびHD映像を含むレスポンスを要求するリクエストを受信した場合にSD映像またはHD映像を含むデータがキャッシュされているかを判定する処理部(220)とレスポンスをクライアント(100-1)に送信する送信部(260)とを備え、処理部(220)は、「キャッシュされている」と判定した場合に、キャッシュを用いて送信すべきレスポンスを生成する。
Description
本発明は、送信装置から送信されたコンテンツのデータを再生装置に送信する中継装置、およびそのような中継装置における中継方法に関する。また、本発明は、そのような中継装置としてコンピュータを動作させる中継制御プログラム、および、該中継制御プログラムを記憶している記録媒体に関する。さらに、本発明は、そのような中継装置と、該中継装置が送信したコンテンツのデータを受信する受信装置とを含む通信システムに関する。
近年、インターネットに対する需要が急速に高まるにしたがって、テキストや静止画等で構成されたWEBページを見るだけでなく、動画コンテンツや音声コンテンツ等を、ストリーミング配信を受けて鑑賞することを望むユーザが増えてきている。
一般に、ユーザはブラウザでWEBページにアクセスすることにより、WEBページのテキストデータや静止画データ等を手に入れることができるが、この場合のテキストデータや静止画データは、http(s)プロトコルを用いて送信されるようになっている。
一方、動画コンテンツや音声コンテンツ等は、リアルタイム性を重視して設計されたプロトコルであるRTPプロトコル等を用いて配信されることが多い。
ところで、ユーザがインターネットを利用する用途としては、ブラウザでWEBページにアクセスする用途が圧倒的に多い。このため、一般に、ファイヤーウォールでは、http(s)プロトコルの通信に使用するポートは開放されている。一方、RTPプロトコル等の通信はファイヤーウォールで遮断されることもある。
このため、いつでもどこでも動画や音声等のコンテンツを鑑賞したいというユーザの要望に応えるために、コンテンツの通信をhttp(s)プロトコルで行う技術が開発されている。
また、特に、イベントをリアルタイムに不特定多数あるいは特定多数にhttp通信で同時配信するライブストリーミング配信が求められている。このようなライブストリーミング配信の代表的な配信方式として、MPEG(Moving Picture Expert Group)のMP4ファイルフォーマットを順次ダウンロードさせることによる配信方式(特許文献1)や、MPEGのISO Media File Formatのフラグメント映像形式を用いた配信方式(特許文献2)等が挙げられる。
インターネットやNGN等の基幹ネットワークを利用したライブストリーミング配信では、同一の時間帯に多数の配信要求が発生するため、基幹ネットワークのトラフィック(帯域負荷)が急騰する問題がある。特許文献2に記載されている中間サーバ(プロキシ(代理)サーバ)はこの問題を回避するように設計されている。
すなわち、特許文献2の中間サーバは、同一内容(すなわち、同一タイトル)のコンテンツに対する配信要求を複数のクライアント装置から受けた場合に、各配信要求をひとつの配信要求にまとめて基幹ネットワークに流し、配信サーバから受け取ったコンテンツを各クライアント装置に逐次的に転送するようになっている。
上記特許文献2に記載の中間サーバで複数の階層の映像データを保持可能なスケーラブル映像のコンテンツに対する配信要求をクライアント装置から受け付ける場合、以下のような状況が生じる場合がある。
すなわち、配信サーバが記録しているスケーラブル映像のコンテンツの階層数がNであるものとすると、配信サーバは、クライアント装置から、クライアント装置の映像再生能力等に応じて、最上位階層がi(1≦i≦N)番目の階層となるようなスケーラブル映像のコンテンツの配信要求を受けることになる。従って、映像再生能力等が相異なる多数のクライアント装置からスケーラブル映像のコンテンツの配信要求を受け付けた場合、配信サーバは、各要求が同一タイトルのコンテンツについての配信要求であっても、N通りのスケーラブル映像のコンテンツデータをクライアント装置に送信する必要が生じる場合がある。
そして、この場合、特許文献2の中間サーバは、キャッシュの状況によっては最大N回配信サーバに配信要求を転送する(すなわち、最大N回配信サーバから同一タイトルのコンテンツデータを受信する)ことになる。これにより、短期間に多数のクライアント装置から配信要求を受けた場合に、中間サーバの処理負荷、および、中間サーバと配信サーバとの間のネットワークの帯域負荷が極めて高くなるという問題がある。
本発明は上記の問題を鑑みてなされたものであり、その主な目的は、送信装置から送信されるコンテンツがスケーラブルなコンテンツである場合に、コンテンツを多数の再生装置に中継することに起因する送信装置との間のネットワークの帯域負荷を抑えることが可能な中継装置を実現することにある。
本発明に係る中継装置は、上記課題を解決するために、再生装置からの要求に応じて、品質が相異なる最大N個(N:2以上の整数)の再生対象コンテンツからなるコンテンツデータを送信装置から上記再生装置に中継するとともに該コンテンツデータを記録部に記録する中継装置において、上記再生装置から上記要求を受信した場合に、要求された第1のコンテンツデータを構成する再生対象コンテンツの何れかを含む第2のコンテンツデータが上記記録部に記録されているか否かを判定する判定手段と、上記第1のコンテンツデータを上記再生装置に送信する送信手段と、上記第2のコンテンツデータが上記記録部に記録されていると上記判定手段が判定した場合に、上記第1のコンテンツデータを、上記記録部に記録されている上記第2のコンテンツデータを用いて生成する生成手段と、を備えていることを特徴としている。
上記の構成によれば、上記中継装置は、再生装置から要求された第1のコンテンツデータを構成するk(≦N)個の再生対象コンテンツの何れかを含む第2のコンテンツデータが上記記録部に記録されている場合に、上記第1のコンテンツデータを、上記記録部に記録されている上記第2のコンテンツデータを用いて生成する。
したがって、上記中継装置は、k個の再生対象コンテンツから構成される第1のコンテンツデータそのものが上記記録部に記録されていない場合に従来のプロキシサーバのように第1のコンテンツデータそのものを送信装置から取得しなくても、再生装置に中継する第1のコンテンツデータを生成することができる。
これにより、上記中継装置は、送信装置から送信されるコンテンツがスケーラブルなコンテンツである場合に、コンテンツを多数の再生装置に中継することに起因する送信装置との間のネットワークの帯域負荷を抑えることが出来るという効果を奏する。
本発明に係る中継方法は、上記課題を解決するために、再生装置からの要求に応じて、品質が相異なる最大N個(N:2以上の整数)の再生対象コンテンツからなるコンテンツデータを送信装置から上記再生装置に中継するとともに該コンテンツデータを記録部に記録する中継装置の中継方法において、上記再生装置から上記要求を受信した場合に、要求された第1のコンテンツデータを構成する再生対象コンテンツの何れかを含む第2のコンテンツデータが上記記録部に記録されているか否かを判定する判定工程と、上記第2のコンテンツデータが上記記録部に記録されていると上記判定工程にて判定された場合に、上記第1のコンテンツデータを、上記記録部に記録されている上記第2のコンテンツデータを用いて生成する生成工程と、上記生成工程にて生成された上記第1のコンテンツデータを上記再生装置に送信する送信工程と、を含んでいることを特徴としている。
上記の構成によれば、本発明に係る中継方法は、本発明に係る中継装置と同様の作用効果を奏する。
以上のように、本発明の中継装置は、送信装置から送信されるコンテンツがスケーラブルなコンテンツである場合に、コンテンツを多数の再生装置に中継することに起因する送信装置との間のネットワークの帯域負荷を抑えることができる。
(実施形態1)
本発明の一実施形態に係る通信システムについて図面を参照しながら説明する。
本発明の一実施形態に係る通信システムについて図面を参照しながら説明する。
本実施形態に係る通信システムでは、コンテンツサーバが、ライブ映像のコンテンツデータを要求および再生するクライアント装置に対し、コンテンツデータをライブ配信するようになっている。クライアント装置からの要求、およびコンテンツサーバからの配信は、プロキシサーバによって中継される。
本実施形態では、データ伝送プロトコルの1つであるHTTP(Hypertext Transfer Protocol)プロトコルのリクエスト・レスポンスの仕組みを用いて、コンテンツデータのやりとりを行うものとする。そして、このコンテンツデータは、HTTPプロトコルで規定されているMIMEマルチパート形式(単に「マルチパート形式」と称する)でやりとりされる。
また、本実施形態の通信システムで配信されるコンテンツデータは、複数の階層の映像(再生対象コンテンツ)を再生可能な、複数の異なるデータからなるスケーラブルコンテンツデータであり、高低2つの空間解像度(以下、単に「解像度」と呼ぶ)の映像を、それぞれ、ベースレイヤ及び拡張レイヤを併せたデータ、ベースレイヤのみのデータとして再生可能な空間解像度スケーラブル映像のコンテンツデータである。なお、ここで言う解像度は、クライアント装置が表示する映像の表示解像度に直接対応するものでなくてもよい。このため、特に再生映像については、以下、HDクオリティ、SDクオリティの再生映像、といった表現を用いている。
以下、本発明の一実施形態に係る通信システムの構成について以下に図1および図2を参照しながら説明する。
図1は、本実施形態に係る通信システムの全体構成を示した図である。通信システム1は、クライアント装置100-1、100-2と、プロキシサーバ200と、コンテンツサーバ300と、を含むシステムである。
プロキシサーバ200と、コンテンツサーバ300と、は、基幹ネットワーク(インターネット)500上のノードである。
また、クライアント装置100-1、100-2、およびプロキシサーバ200は、同一のローカルエリアネットワーク(LAN)を構成するように配置されている。
クライアント装置100-1、100-2は、再生映像のクオリティに応じた空間解像度スケーラブル映像のコンテンツデータを配信するようコンテンツサーバ300に要求するようになっている。また、クライアント装置100-1は、低解像度(SDクオリティ)および高解像度(HDクオリティ)の映像を再生可能であり、クライアント装置100-2は、低解像度(SDクオリティ)の映像のみ再生可能である。以下では、クライアント装置100-1、100-2は、それぞれ、HDクオリティ、および、SDクオリティの映像を再生するものとして説明を行う。
プロキシサーバ200は、一般的なプロキシサーバとしての機能を備えている。
すなわち、プロキシサーバ200は、一般的なプロキシサーバと同様に、クライアント装置100-1、100-2からの配信要求を受けると、配信要求されたコンテンツデータそのものがキャッシュ(図1で図示せず)に含まれている場合には、配信要求を出したクライアント装置に向けてキャッシュのコンテンツデータを送信する。また、プロキシサーバ200は、配信要求されたコンテンツデータそのものがキャッシュに含まれていない場合には、配信要求をコンテンツサーバ300に転送する。さらに、プロキシサーバ200は、コンテンツサーバ300から配信されたコンテンツデータをキャッシュするとともに配信要求を出したクライアント装置に向けて転送するようになっている。
また、プロキシサーバ200は、以下の特有の機能を備えている。
すなわち、プロキシサーバ200は、最上位階層がSDクオリティであるコンテンツデータの配信要求を受けたときに最上位階層がHDクオリティのコンテンツデータがキャッシュされている場合、配信要求をコンテンツサーバ300に転送せずに、キャッシュから最上位階層がSDクオリティであるコンテンツデータ(ベースレイヤのデータ)を選んで、配信要求を出したクライアント装置に向けて送信する。
さらに、プロキシサーバ200は、最上位階層がHDクオリティであるコンテンツデータの配信要求を受けたときに最上位階層がSDクオリティのコンテンツデータがキャッシュされている場合、不足するHDクオリティのコンテンツデータ(拡張レイヤのデータ)のみをコンテンツサーバ300に配信要求する。そして、プロキシサーバ200は、コンテンツサーバ300から受信したHDクオリティのコンテンツデータ(拡張レイヤのデータ)と、キャッシュされている最上位階層がSDクオリティのコンテンツデータ(ベースレイヤのデータ)と、をマージすることにより、最上位階層がHDクオリティであるコンテンツデータを生成し、配信要求を出したクライアント装置に向けて送信する。
コンテンツサーバ300は、ライブカメラ(図1で図示せず)から入力されるストリーミングの原映像に空間スケーラブル符号化処理を施すことにより、SDクオリティおよびHDクオリティの映像を再生可能な、符号化された異なる2個の映像データからなる、空間解像度スケーラブル映像のコンテンツデータを生成する。そして、コンテンツサーバ300は、HDクオリティのコンテンツデータの配信要求を受け付けた場合には、SDクオリティおよびHDクオリティの映像を両方共再生可能な(すなわち、最上位階層がHDクオリティの)コンテンツデータを送信する。また、コンテンツサーバ300は、SDクオリティのコンテンツデータの配信要求を受け付けた場合には、SDクオリティの映像のみを再生可能な(すなわち、最上位階層がSDクオリティの)コンテンツデータを送信する。
以下では、図2を参照しながら、クライアント装置100-1、100-2、プロキシサーバ200、およびコンテンツサーバ300についての詳細な構成を説明する。
(クライアント装置100-1、100-2)
クライアント装置100-1、100-2は、リクエスト送信部110、再生部120、レスポンス受信部130を備えている。
クライアント装置100-1、100-2は、リクエスト送信部110、再生部120、レスポンス受信部130を備えている。
リクエスト送信部110は、後述するメディアセグメント単位(ライブ映像のコンテンツデータを一定時間ごとに区切った単位)で、同じく後述するムービーフラグメント(フラグメント)を各パートとするマルチパート形式のコンテンツデータの配信要求をリクエストデータとして、プロキシサーバ200経由でコンテンツサーバ300に送信する。
再生部120は、レスポンス受信部130が受信したレスポンスデータに含まれるマルチパート形式のコンテンツデータを復号して、映像を再生する。最上位階層がSDクオリティのコンテンツデータからは、SDクオリティのコンテンツデータを再生される。
また、最上位階層がHDクオリティのコンテンツデータからは、HDクオリティの映像が再生される。
レスポンス受信部130は、リクエスト送信部110が送信した配信要求に対応するメディアセグメントごとのコンテンツデータをレスポンスデータとして受信する。
(プロキシサーバ200)
プロキシサーバ200は、リクエスト受信部210、処理部220、キャッシュ部230、リクエスト送信部240、レスポンス受信部250、およびレスポンス送信部260を備えている。
プロキシサーバ200は、リクエスト受信部210、処理部220、キャッシュ部230、リクエスト送信部240、レスポンス受信部250、およびレスポンス送信部260を備えている。
リクエスト受信部210は、クライアント装置100-1、100-2が送信したメディアセグメント単位のリクエストデータを受信し、処理部220に供給する。
リクエスト送信部240は、処理部220から供給されたリクエストデータをコンテンツサーバ300に送信する。
レスポンス受信部250は、コンテンツサーバ300が送信するレスポンスデータを受信して処理部220に供給する。
キャッシュ部230は、高速な読み出しおよび書き込みが可能なキャッシュメモリである。
レスポンス送信部260は、処理部220から供給されたメディアセグメントを含むレスポンスデータを、対応するリクエストデータを送信したクライアント装置(100-1または100-2)に送信する。
処理部220は、リクエスト受信部210から供給されたリクエストデータに対応するメディアセグメントを含んだレスポンスデータがキャッシュ部230にキャッシュされている場合には、そのレスポンスデータを読み出してレスポンス送信部260に供給する。また、処理部220は、最上位階層がSDクオリティであるメディアセグメントを要求するリクエストデータがリクエスト受信部210から供給された場合であって、最上位階層がHDクオリティであるメディアセグメントを含んだレスポンスデータがキャッシュ部230にキャッシュされている場合、キャッシュ部230のレスポンスデータから、最上位階層がSDクオリティであるメディアセグメントを抽出してレスポンスデータを形成し、そのレスポンスデータをレスポンス送信部260に供給する。
また、処理部220は、リクエスト受信部210から供給されたリクエストデータに対応するメディアセグメントを含んだレスポンスデータがキャッシュ部230にキャッシュされていない場合には、リクエストデータをそのままリクエスト送信部240に供給する。また、処理部220は、最上位階層がHDクオリティであるメディアセグメントを要求するリクエストデータがリクエスト受信部210から供給された場合であって、最上位階層がSDクオリティであるメディアセグメントのみを含んだレスポンスデータがキャッシュ部230にキャッシュされている場合、HDクオリティのみのメディアセグメントを要求するリクエストデータを生成して、リクエスト送信部240に供給する。
さらに、処理部220は、レスポンス受信部250から供給されたレスポンスデータ(メディアセグメント)をキャッシュ部230にキャッシュする。また、レスポンス受信部250から供給されたレスポンスデータのメディアセグメントがHDクオリティのみの場合、処理部220は、そのメディアセグメントと、キャッシュ部230にキャッシュされている最上位階層がSDクオリティであるメディアセグメントと、をマージし、最上位階層がHDクオリティであるメディアセグメントを含むレスポンスデータを形成する。そして、処理部220は、マージにより得られた最上位階層がHDクオリティであるメディアセグメントを含むレスポンスデータをレスポンス送信部260に供給する。
(コンテンツサーバ300)
コンテンツサーバ300は、リクエスト受信部310、処理部320、レスポンス送信部330、メモリ部340、符号化部350、および原映像受信部360を備えている。
コンテンツサーバ300は、リクエスト受信部310、処理部320、レスポンス送信部330、メモリ部340、符号化部350、および原映像受信部360を備えている。
リクエスト受信部310は、プロキシサーバ200が送信したリクエストデータを受信し、処理部320に供給する。
処理部320は、リクエスト受信部310から供給されたリクエストデータに対応するメディアセグメントをメモリ部340から読み出してレスポンスデータを形成し、レスポンス送信部330に供給する。
原映像受信部360は、図示しないライブカメラが配信した原映像(ライブ映像)を受信し、符号化部350に供給する。
符号化部350は、ライブ映像に対し、順次、空間スケーラブル符号化処理を施し、処理後のデータをメモリ部340に記録する。すなわち、符号化部350は、SDクオリティおよびHDクオリティの映像を再生可能な符号化済みのコンテンツデータを順次メモリ部340に記録していく。
レスポンス送信部330は、処理部320から供給されたレスポンスデータを、対応するリクエストデータを送信したクライアント装置あるいはプロキシサーバに向けて送信する。
以上、クライアント装置100-1、100-2、プロキシサーバ200、およびコンテンツサーバ300の詳細な構成について説明した。
次に、ライブカメラでの撮影により生成された映像が、空間スケーラブル符号化され、コンテンツサーバ300、プロキシサーバ200を通してクライアント装置100-1で再生されるまでの流れを簡単に説明する。
図3は、この流れを模式的に示した図である。
図3に示すように、コンテンツサーバ300の符号化部350は、原映像30に空間スケーラブル符号化処理を施して、ベースレイヤビットストリームBase、拡張レイヤビットストリームEnhcの2つの符号化ビットストリームを生成する。これらのビットストリームは、後述するようにそれぞれムービーフラグメントに分割されて、コンテンツサーバ300からプロキシサーバ200へ、プロキシサーバ200からクライアント装置100-1、100-2へと伝送される。
クライアント装置100-1は、最上位階層がHDクオリティのコンテンツデータを配信要求する。このため、コンテンツサーバ300(処理部320)あるいはプロキシサーバ200(処理部220)では、ベースレイヤビットストリームBase、拡張レイヤビットストリームEnhcを含むフラグメントを共にクライアント装置100-1に送信する。そして、クライアント装置100-1の再生部120は、フラグメントをベースレイヤBase、拡張レイヤEnhc2つのビットストリームに戻し、これらをスケーラブル復号して表示部(図示せず)に高画質(HDクオリティ)の映像32を表示する。
クライアント装置100-2は、最上位階層がSDクオリティのコンテンツデータを配信要求する。このため、コンテンツサーバ300(処理部320)あるいはプロキシサーバ200(処理部220)では、ベースレイヤビットストリームBaseを含むフラグメントのみをクライアント装置100-2に送信する。そして、クライアント装置100-2の再生部120は、受信したフラグメントをベースレイヤビットストリームBaseのみに戻し、復号して表示部(図示せず)に低画質(SDクオリティ)の映像31を表示する。
(メディアセグメントおよびムービーフラグメントについて)
次に、前述したムービーフラグメントおよびメディアセグメントについて図4および図5を参照しながら以下に説明する。
次に、前述したムービーフラグメントおよびメディアセグメントについて図4および図5を参照しながら以下に説明する。
最初に図4を参照しながらムービーフラグメントについて説明する。
図4は、2つのビットストリームと、ビットストリームを分割・格納した各ムービーフラグメントと、の関係を模式的に示した図である。また、図5は、メディアセグメントと、メディアセグメントを構成する各ムービーフラグメントと、の関係を模式的に示した図である。
図4に示すように、ベースレイヤビットストリーム(Base)および拡張レイヤビットストリーム(Enhc)の各ビットストリームは、分割されて複数のムービーフラグメントにより格納される。図中、mdatが分割されたビットストリームデータである。図4の例では、ベースレイヤビットストリームは、分割されて、フラグメントB0、フラグメントB1、・・・に格納されており、拡張レイヤビットストリームは、分割されて、フラグメントE0、フラグメントE1・・に格納されている。なお、図4からわかるように、各ムービーフラグメントに格納されたビットストリームの分割データは、ビットストリームを一定期間単位で区切った単位部分に対応している。
そして、ベースレイヤビットストリームおよび拡張レイヤビットストリームを格納したムービーフラグメントは、全体で、MP4ファイル形式(それぞれ、Base.mp4,Enhc.mp4)を形成している。
各ビットストリームに対応したMP4ファイルの先頭のムービーフラグメント(フラグメントB0、フラグメントE0)には、moovヘッダ41b,41eが含まれている。moovヘッダ41b,41eは、符号化映像を再生するためのビットストリーム全体に関するメタ情報(初期化情報など)を保持するヘッダである。また、各MP4ファイルの先頭を除くムービーフラグメントには、moofヘッダ42b,42eが含まれている。moofヘッダ42b,42eは、各ムービーフラグメント部分の映像を再生するためのメタ情報を保持するようになっている。
また、各ビットストリームの各ムービーフラグメントは、ヘッダの他に映像自体のデータmdatが含まれている。各ビットストリームの各ムービーフラグメントのデータmdatには、該ムービーフラグメントに対応する期間における該ビットストリームの部分データがそれぞれ格納されている。
なお、前述したように各ビットストリームはライブ映像のビットストリームである。すなわち、フラグメントB0,E0のデータmdatには、ライブカメラが撮影(ライブ映像の生成)を開始した時点(撮影時刻0)から一定期間の映像が保持される。同様に、フラグメントBt、Et(t>0)のデータmdatには、ムービーフラグメントB(t-1)、E(t-1)に対応する期間の直後の一定期間の映像が保持される。
次に図5を参照しながらメディアセグメントについて説明する。
図5に示すように、メディアセグメントは複数のムービーフラグメントから構成されている。前述したようにメディアセグメントは、ライブ映像のコンテンツデータを一定期間単位で区切った単位部分に対応している。さらに、本実施形態では、このメディアセグメントを、1つのレスポンスデータに格納されるコンテンツデータとして扱う。即ち、メディアセグメントは、一度のリクエストで獲得されるコンテンツデータの単位となっている。
なお、メディアセグメントが複数のムービーフラグメントから構成されることからわかるように、1つのメディアセグメントに対応する期間の長さは、1つのムービーフラグメントに対応する期間の長さの整数倍となっている(ただし、これはムービーフラグメントの長さが固定の場合であり、ムービーフラグメントの長さが可変の場合には整数倍とは限られない)。本実施形態の図6以降の説明では、説明の簡便のため、1つのメディアセグメントに対応する期間を10秒とし、1つのムービーフラグメントに対応する期間の長さを1秒として説明する。
また、図5に示したような最上位階層が拡張レイヤビットストリーム(HDクオリティの映像ストリーム)であるメディアセグメントは、ベースレイヤビットストリームを構成する複数のムービーフラグメントと、拡張レイヤビットストリームを構成する複数のムービーフラグメントと、により構成される。図5の例では、メディアセグメントenhc/0がフラグメントB0~B(N-1)とフラグメントE0~E(N-1)と、により構成され、メディアセグメントenhc/1がフラグメントBN~B(2N-1)とフラグメントEN~E(2N-1)と、により構成されている。
最上位階層がベースレイヤビットストリーム(SDクオリティの映像ストリーム)であるメディアセグメントは、ベースレイヤビットストリームを構成する複数のムービーフラグメントのみにより構成される。例えば、メディアセグメントbase/0がフラグメントB0~B(N-1)により構成され、メディアセグメントbase/1が、フラグメントBN~B(2N-1)により構成される。
(リクエストデータおよびレスポンスデータのデータ構造について)
次に、クライアント装置100-1(100-2)と、コンテンツサーバ300と、の間でやりとりされる基本的なリクエストデータおよびレスポンスデータのデータ構造について、図6および図7を参照しながら以下に説明する。
次に、クライアント装置100-1(100-2)と、コンテンツサーバ300と、の間でやりとりされる基本的なリクエストデータおよびレスポンスデータのデータ構造について、図6および図7を参照しながら以下に説明する。
最初に、クライアント装置が新規にライブ映像を再生するにあたり、コンテンツサーバ300に向けて送信するリクエストデータ4A、およびコンテンツサーバ300から送信されるレスポンスデータ5A(初期レスポンスデータ)について説明する。
図6(a)はリクエストデータ4Aのデータ構造を示した図であり、図6(b)はレスポンスデータ5Aのデータ構造を示した図である。リクエストデータ4Aのうち、先頭の行「GET /content1 HTTP/1.1」はリクエスト行、残りはヘッダ部と呼ばれる。レスポンスデータ5Aのうち先頭の行「HTTP/1.1 200 OK」はレスポンス行、「Content-Type:~」から空白行の前の「Cache-Control: no-store」まではヘッダ部、空白行の下、「--BOUNDARY」から「--BOUNDARY--」まではボディ部と呼ばれる。なお、図6(b)を含む各図における「{binary-data:fragmentBt}」「{binary-data:fragmentEt}」(t=0,1,2,・・)の部分は、各ムービーフラグメントのバイナリデータを簡略化して記載したものであり、データ構造の内部に「{binary-data:・・・}」というテキストデータが含まれることを意味するものではない。
図6(a)に示すように、リクエストデータ4Aはマルチパート形式でのデータ送信を要求するHTTPメッセージとなっている(ヘッダ部のAccept: …, multipart/media-segmentがそのことを示している)。以降、リクエストデータ4Aのことを「マルチパートのリクエストデータ」とも称することにする。
また、図6(b)に示すように、リクエストデータ4Aに対応するレスポンスデータ5Aは、ヘッダ部に、レスポンスデータ5Aがマルチパート形式のデータであることを示す文字列501と、コンテンツサーバ300がSDクオリティおよびHDクオリティの映像の要求を受付可能であることを示す文字列502-1、502-2と、キャッシュ制御に関する情報「Cache-Control: no-store」を含んでいる。また、レスポンスデータ5Aは、ボディ部に、ベースレイヤ(SDクオリティ)の先頭ムービーフラグメントに関するデータ503-1と、拡張レイヤ(HDクオリティ)の先頭ムービーフラグメントに関するデータ503-2と、を含んでいる。
先頭ムービーフラグメントに関するデータ503-1、503-2は、マルチパート形式の各々のパートにあたる。さらに、各パートは、パートのボディにあたる先頭ムービーフラグメントのデータ自体と、パートのヘッダにあたるコンテンツタイプを示す行(ビデオの形式を示すvideo/mp4、及びデータがbaseかenhcかを示すname)と、を含んでいる。各パートのヘッダとボディも空白行で区切られている。
また、レスポンスデータ5Aのヘッダ部に「Cache-Control:no-store」という文字列が含まれていることからわかるように、レスポンスデータ5Aはコンテンツサーバ300においてキャッシュされないようになっている。
さらに、ヘッダ部の文字列502-1、502-2は、クライアント装置がマルチパート形式で各クオリティの映像を要求するために指定すべきURL(図6(b)では“content1/base/1”、“/content1/enhc/1”)を示している。また、URLの末尾の数値(図6(b)では“1”)は、コンテンツサーバ300が配信中の(即ち現時点でクライアント装置に配信開始可能な)メディアセグメントに対応する10秒間の期間が、ライブ映像の先頭から何秒目からの期間であるかを示している。すなわち、末尾の数値がtである場合には、t*10秒目からの期間であることを示している(図6(b)では、“1”が10秒目からの期間であることを示している)。
なお、以降の説明では、ライブ映像の先頭からt*10秒目からの10秒間のことを単に「期間t」とも称することにする。また、配信中(クライアント装置に新たに配信開始可能な)メディアセグメントに対応する期間が「期間t」であることを示すレスポンスデータ5Aを「期間tの初期レスポンスデータ」とも称することにする。図6(b)のレスポンスデータ5Aは「期間1の初期レスポンスデータ」である。
以上、リクエストデータ4Aおよびレスポンスデータ5Aについて説明したが、ここで、レスポンスデータ5Aにデータ503-1、503-2を含める理由について簡単に触れておく。
たびたび述べているように、通信システム1では、クライアント装置はライブ映像のコンテンツデータを再生するため、クライアント装置が最初に再生するライブ映像は、ライブ映像の配信が開始されてから相当期間経過後の映像であることもある。この場合、配信中のメディアセグメントには初期化など符号化映像の再生に必要なメタ情報を含むmoovヘッダ41b,41eが含まれておらず、メディアセグメントを受信してもクライアント装置はライブ映像を再生することができない。
したがって、クライアント装置がいつでもライブ映像を再生することを可能にするために、moovヘッダ41b、41eを含む先頭ムービーフラグメントを初期レスポンスデータであるレスポンスデータ5Aに含めて送るようになっている。
次に、クライアント装置がライブ映像を再生中の期間において10秒ごとにコンテンツサーバ300に向けて送信するリクエストデータ4B、およびコンテンツサーバ300から送信されるレスポンスデータ5Bについて図7を参照しながら説明する。
図7(a)はリクエストデータ4Bのデータ構造を示した図であり、図7(b)はレスポンスデータ5Bのデータ構造を示した図である。リクエストデータ4Bのうち、先頭の行「GET /content1/enhc/1 HTTP/1.1」はリクエスト行、残りはヘッダ部と呼ばれる。レスポンスデータ5Bのうち先頭の行「HTTP/1.1 200 OK」はレスポンス行、「Content-Type:~」から空白行の前の「X-Content-Hd-Url: …」まではヘッダ部、空白行の下、「--BOUNDARY」から「--BOUNDARY--」まではボディ部と呼ばれる。
図7(a)の特に“enhc/1”の部分からわかるように、リクエストデータ4Bは、最上位階層がHDクオリティであるような期間1のレスポンスデータをマルチパート形式で送信するよう要求するHTTPメッセージとなっている。以降、このようなリクエストデータ4Bのことを、必要に応じて「期間1のHDクオリティのリクエストデータ」のように称する。
また、図7(b)に示すように、リクエストデータ4Bに対応するレスポンスデータ5Bは、ヘッダ部に、マルチパート形式であることを示す文字列501と、各コンテンツデータ(MP4ファイル)が取得される実際のURLを示す文字列502-1、502-2と、を含んでいる。なお、「http://www.sample.com/content1/base/t」は、期間tのベースレイヤのコンテンツデータが得られるURLを示している。また、「http://www.sample.com/content1/enhc/t」は、期間tのベースレイヤおよび拡張レイヤのコンテンツデータが得られるURLを示している。また、レスポンスデータ5Bは、ボディ部に、期間t(図7(b)では1)のメディアセグメントを構成する合計20個のムービーフラグメントに関するデータ(503-1、503-2、・・・・503-20)を含んでいる。
20個のデータ(503-1、・・)の各々は、マルチパート形式の各々のパートにあたる。そして、各パートは、パートのボディ部にあたるムービーフラグメント自体のバイナリデータと、パートのヘッダ部にあたる、コンテンツタイプを示す行(ビデオの形式を示すvideo/mp4、及びデータがbaseかenhcかを示すname)と、ライブ映像の先頭を時刻0とした該ムービーフラグメントの再生時刻を示すタイムスタンプと、を含んでいる。
また、20個のデータは、含まれるタイムスタンプの値が大きいものほどレスポンスデータ5Bの末尾側に記録されるようになっている。
なお、図7(b)で示したレスポンスデータ5Bは、最上位階層がHDクオリティであるような期間1のレスポンスデータであるが、SDクオリティのリクエストデータ4Bに対応するレスポンスデータ5Bでは、ムービーフラグメントに関するデータとしては、ベースレイヤを構成するムービーフラグメントに関する10個のデータのみが含まれたレスポンスデータとなる。
なお、レスポンスデータ5Bを受信したクライアント装置は、レスポンスデータ5Bの先頭側から順に同一時刻のムービーフラグメントを読み取って再生する。すなわち、クライアント装置は、データ503-1と503-2、データ503-3と503-4、・・の順にデータに含まれるムービーフラグメントのバイナリデータを読み取り、スケーラブルデコードおよび再生を行う。
また、図23は、最上位階層がHDクオリティである期間1のレスポンスデータの別の例(レスポンスデータ5B’)を示した図である。図7(b)のレスポンスデータ5Bとの違いは、base、enhcといったレイヤの情報をnameでなく「X-Representation-Id:」として表し、属性、URL等をヘッダ部の「X-Representation-List:」でまとめて表している点、及び、期間tのtを「X-Media-Segment-Index:」で表している点である。また、各パートのヘッダ部に付けられた「X-Representation-Id:」には、「1,2」または「2」が付されており、HDクオリティのムービーフラグメントを抽出する場合には「Id=2」を指定することで全てのフラグメントを、SDクオリティのムービーフラグメントを抽出する場合には「Id=1」を指定することでbaseフラグメントのみを、容易に抽出可能なように構成されている。ここで、Id=1,2は、X-Representation-List:の各URLを示すリストの先頭に付けられた付番1、2に対応する。すなわち、図7(b)と同様に、「http://www.sample.com/content1/base/t」(tはX-Media-Segment-Indexで与えられる)は期間tのベースレイヤのコンテンツデータ(ムービーフラグメント)が得られるURL、「http://www.sample.com/content1/enhc/t」は期間tのベースレイヤおよび拡張レイヤのコンテンツデータ(ムービーフラグメント)が得られるURLを示している。
以上が本実施形態におけるリクエストデータ及びレスポンスデータの構造である。なお、後述するように、本実施形態では、プロキシサーバがレスポンスデータに含まれるムービーフラグメントを取捨あるいはマージすることで新たなレスポンスデータを形成するが、この処理は、前述したリクエストデータ、レスポンスデータのリクエスト行・レスポンス行、ヘッダ部の情報、マルチパートの各パートヘッダの情報のみを用いて行い、ムービーフラグメントの中のデータを一切見ないで行う。このため、プロキシサーバは容易にスケーラブルコンテンツのデータを扱うことができるようになっている。
以下、通信システム1の一動作例について、図6~図9を参照しながら説明する。
(動作例1)
図8は、上記動作例を示すシーケンス図であり、図9は、図8のシーケンス図に従った動作中にやり取りされるHTTPメッセージを示している。図9の左側のデータは、ステップS12にてコンテンツサーバ300から送信されるレスポンスデータ5B-1を示しており、図9の右側のデータは、ステップS19にてプロキシサーバ200からクライアント装置に送信されるレスポンスデータ5B-2を示している。
図8は、上記動作例を示すシーケンス図であり、図9は、図8のシーケンス図に従った動作中にやり取りされるHTTPメッセージを示している。図9の左側のデータは、ステップS12にてコンテンツサーバ300から送信されるレスポンスデータ5B-1を示しており、図9の右側のデータは、ステップS19にてプロキシサーバ200からクライアント装置に送信されるレスポンスデータ5B-2を示している。
なお、この動作例は、同一のライブ映像のコンテンツデータについて、クライアント装置100-1がHDクオリティのコンテンツデータを要求した後に、クライアント装置100-2がSDクオリティのコンテンツデータを要求した場合の動作例である。また、前提として、動作の開始前にプロキシサーバ200のキャッシュは空であるものとし、動作の開始時点でコンテンツサーバ300は期間1のムービーフラグメントを配信中であるものとする。
まず、クライアント装置100-1は、マルチパートのリクエストデータ4Aをプロキシサーバ200に送信する(S1)。プロキシサーバ200はリクエストデータ4Aをそのままコンテンツサーバ300に転送する(S2)。
リクエストデータ4Aを受信したコンテンツサーバ300は、現在配信中である期間1の初期レスポンスデータ5Aをプロキシサーバ200に送信する(S3)。プロキシサーバ200は初期レスポンスデータ5Aをキャッシュせずにそのままクライアント装置100-1に転送する(S4)。
期間1の初期レスポンスデータ5Aを受信したクライアント装置100-1は、初期レスポンスデータ5Aに含まれる先頭ムービーフラグメントのmoovヘッダを参照し、再生を開始するための初期化処理を行う。さらに、クライアント装置100-1は、初期レスポンスデータ5Aのヘッダ部の文字列502-1、502-2を参照することによりHDクオリティおよびSDクオリティのライブ映像をコンテンツサーバ300が配信可能であると判定する。
前述したように、クライアント装置100-1は、HDクオリティの映像を再生するユーザ指示を受けている(あるいは装置の設定・仕様によりHDクオリティの映像を再生することが予め決まっている)ので、クライアント装置100-1は、期間1のHDクオリティのリクエストデータ4Bをプロキシサーバ200に送信する(S5)。プロキシサーバ200は、S5にて送信されたリクエストデータ4Bについてクライアント装置100-1に送信すべきレスポンスデータ5B(メディアセグメント)を構成する全部または一部の階層がキャッシュに含まれているか判定する。判定は、過去に受信した(キャッシュした)リクエストデータのリクエスト行、及びキャッシュしたレスポンスデータのヘッダ部を参照することで行う。ここでは、キャッシュが空なので、プロキシサーバ200はリクエストデータ4Bをそのままコンテンツサーバ300に送信する(S6)。
リクエストデータ4Bを受信したコンテンツサーバ300は、要求された期間1の最上位階層がHDクオリティのレスポンスデータ5Bをプロキシサーバ200に送信する(S7)。レスポンスデータ5Bを受信したプロキシサーバ200は、レスポンスデータ5Bをキャッシュするとともに、レスポンスデータ5Bをそのままクライアント装置100-1に送信する(S8)。
レスポンスデータ5Bを受信したクライアント装置100-1は、レスポンスデータ5Bに含まれる20個のムービーフラグメントを順にデコードしてHDクオリティの映像を再生する。すなわち、この時点からクライアント装置100-1ではHDクオリティのライブ映像の再生が開始されることになる。
次に、クライアント装置100-1は、次の期間(期間2)のHDクオリティのリクエストデータ4Bをプロキシサーバ200に送信する(S9)が、同様の処理(すなわち、S5~S8までに相当する処理)がその後繰り返される。以下では、クライアント装置100-1は、期間4のHDクオリティのリクエストデータ4Bをプロキシサーバ200に送信する(S10)時点からの動作を説明する。
S10~S13では、S5~S8と同様の処理が行われるが、S12において、コンテンツサーバ300が図9の左側に示すようなレスポンスデータ5B-1をプロキシサーバ200に送信し、プロキシサーバ200はレスポンスデータ5B-1をキャッシュするものとする。
ここで、図示しない操作部を介してユーザによる再生指示を受け付けたクライアント装置100-2は、マルチパートのリクエストデータ4Aをプロキシサーバ200に送信する(S14)。そして、クライアント装置100-2と、プロキシサーバ200と、コンテンツサーバ300と、の間で、S2~S4と同様の処理であるS15~S17の処理が行われる。
そして、S17において送信された期間4の初期レスポンスデータ5Aを受信したクライアント装置100-2は、期間4のSDクオリティのリクエストデータ4Bを送信する(S18)。
ここで、プロキシサーバ200の処理部220は、S18にて送信されたリクエストデータ4Bについてクライアント装置100-2に送信すべきレスポンスデータ5B-2(第1のコンテンツデータ)を構成する全部または一部の階層がキャッシュに含まれているか判定する。判定は、過去に受信した(キャッシュした)リクエストデータのリクエスト行、及びキャッシュしたレスポンスデータのヘッダ部を参照することで行う。キャッシュには、図9の左側に示すレスポンスデータ5B-1(第2のコンテンツデータ)がすでに含まれているが、レスポンスデータ5B-1は、期間4の最上位階層がHDクオリティのレスポンスデータである。そして、処理部220は、このレスポンスデータ5B-1を受信したときのリクエストデータ4Bのリクエスト行、及びレスポンスデータ5B-1ヘッダ部の「X-Content-Sd-Url:」「X-Content-Hd-Url:」行から、レスポンスデータ5B-1がベースレイヤ、拡張レイヤのムービーフラグメントを含んでいることを検出する。
したがって、ここでは、レスポンスデータ5B-2を構成する全部の階層(すなわちSDクオリティの階層)が含まれていると判定する。このため、プロキシサーバ200はコンテンツサーバ300に対して、ここでは配信要求を行わない(すなわち、クライアント装置100-2から受信したリクエストデータ4Bを転送しない)。
レスポンスデータ5B-2を構成する全部の階層がキャッシュに含まれていると判定した場合、処理部220は、レスポンスデータ5B-1の中から不要な部分(図9の左側の図において点線で囲まれた部分)を削除することにより、レスポンスデータ5B-2を抽出することができる。この処理は、マルチパートの各パートのヘッダ部に記載されたコンテンツタイプを示す情報(図9中、ムービーフラグメントのデータがbaseかenhcかを示すname)を参照することで容易に行うことができる。
最後に、プロキシサーバ200は、抽出したレスポンスデータ5B-2をクライアント装置100―2に送信する(S19)。これにより、クライアント装置100-2でもSDクオリティのライブ映像の再生が開始されることになる。
以上のように、プロキシサーバ200は、従来のプロキシサーバと異なり、最上位階層がSDクオリティのスケーラブル映像の配信要求を受け取った場合に、最上位階層がHDクオリティのスケーラブル映像がキャッシュに含まれていれば、コンテンツサーバ300に別途配信要求を行うことなく、キャッシュから、最上位階層がSDクオリティのスケーラブル映像を抽出してクライアント装置に送信することになる。
これにより、通信システム1のプロキシサーバ200とコンテンツサーバ300との間の基幹ネットワークの帯域負荷は、通信1のプロキシサーバ200を従来のプロキシサーバに置き換えた場合における基幹ネットワークの帯域負荷に比べ小さくなる。
さらに、上述したように、送信すべきレスポンスデータを構成する全部または一部の階層がキャッシュに含まれているかの判定、並びに、最上位階層がHDクオリティのレスポンスデータのキャッシュからSDクオリティのレスポンスデータを抽出する処理は、リクエストデータのリクエスト行、レスポンスデータのヘッダ部、及びマルチパートの各パートのヘッダ部のみを参照することで行われ、ムービーフラグメントのデータ自体を確認する必要がない。加えて、抽出の処理は、一部のパートを削除するというHTTPレスポンスデータからHTTPレスポンスデータへの置換処理に過ぎないため、極めて容易に実現できる。このように、本実施形態の通信システムでは、異なる配信要求をするクライアント装置が多数ある場合でも、プロキシサーバの処理の負荷を抑えたコンテンツデータの配信が可能である。
次に、通信システム1の別の一動作例について、図6、図7、図10および図11を参照しながら説明する。
(動作例2)
図10は、動作例2を示すシーケンス図であり、図11は、図10のシーケンス図に従った動作中にやり取りされる一部のHTTPメッセージを示している。図11(a)は、S38にてクライアント装置100-2から送信されるマルチパートのリクエストデータ4Cを示している。また、図11(b)の左側のデータは、ステップS32にてコンテンツサーバ300から送信されるレスポンスデータ5B-1を示しており、図11(b)の右側のデータは、ステップS39にてプロキシサーバ200からクライアント装置に送信されるレスポンスデータ5B-3を示している。
図10は、動作例2を示すシーケンス図であり、図11は、図10のシーケンス図に従った動作中にやり取りされる一部のHTTPメッセージを示している。図11(a)は、S38にてクライアント装置100-2から送信されるマルチパートのリクエストデータ4Cを示している。また、図11(b)の左側のデータは、ステップS32にてコンテンツサーバ300から送信されるレスポンスデータ5B-1を示しており、図11(b)の右側のデータは、ステップS39にてプロキシサーバ200からクライアント装置に送信されるレスポンスデータ5B-3を示している。
ここで、動作例2の動作について説明する前に、クライアント装置で再生している映像と、図示しない撮影中のライブカメラが生成している映像と、にタイムラグがあることを述べておく。
すなわち、コンテンツサーバ300が期間tのレスポンスデータを送信してからクライアント装置が該レスポンスデータを受信して再生するまでにタイムラグがある。さらに、コンテンツサーバ300が期間tのレスポンスデータを送信するタイミングでは、すでに期間t+1(またはそれ以降の期間)のレスポンスデータとして送信すべき映像をライブカメラが生成中である。
動作例2は動作例1と類似しているが、動作例2に従って通信システム1が動作した場合には、クライアント装置100-2では、前述したタイムラグが動作例1の場合と比べて小さくなるように映像を再生することができる。以下、動作例2の動作について図10を参照しながら具体的に説明するが、動作例2の動作開始時点の前提条件は、動作例1の場合と同様である。
S21~S37までの動作は、動作例1のS1~S17までの動作と同様であるので、説明を省略する。
S37において送信された期間4の初期レスポンスデータ5Aを受信したクライアント装置100-2は、期間4のSDクオリティのリクエストデータ4Cを送信する(S38)。図11(a)からわかるように、リクエストデータ4Cは、リクエストデータ4Bの末尾に「X-Range:now-and-later-only」という文字列を付加したデータとなっている。このリクエストデータ4Cを受信したプロキシサーバ200では、以下の処理を行う。
すなわち、プロキシサーバ200の処理部220は、S38にて送信されたリクエストデータ4Cについてクライアント装置100-2に送信すべきレスポンスデータ5B-3を構成する全部または一部の階層がキャッシュに含まれているか判定する。判定は、過去に受信した(キャッシュした)リクエストデータのリクエスト行、及びキャッシュしたレスポンスデータのヘッダ部を参照して行う。ここでは、レスポンスデータ5B-3を構成する全部の階層(すなわちSDクオリティの階層)が含まれていると判定する。そして、処理部220は、キャッシュのレスポンスデータ5B-1から拡張レイヤビットストリームを構成する10個の不要なムービーフラグメントに関するデータを削除する。ここまでは、リクエストデータ4Bを受信した場合と同様の動作であるが、処理部220は、さらに以下のような動作を行う。
すなわち、処理部220は、キャッシュのレスポンスデータ5B-1から、ベースレイヤビットストリームを構成する10個のムービーフラグメントに関するデータのうち、一部のデータを削除する。削除は、マルチパートを構成する各パートのヘッダ部のコンテンツタイプ情報(baseかenhcかを示すname)を参照することで行う。ここで、値の小さいタイムスタンプを含むデータを優先的に削除する。
削除対象となる該データの個数は、プロキシサーバ200が、クライアント装置100-1から期間4のリクエストデータ4Bを受信した時点からクライアント装置100-2のリクエストデータ4Cを受信した時点までの期間の長さに応じた個数となる。即ち、この期間の長さ分のムービーフラグメントを削除することによって、プロキシサーバ200に繋がる各クライアント装置が再生しているコンテンツの再生位置が略揃うこととなる。また、後から要求したクライアント装置でも、ライブカメラでライブ映像を構成する画像が生成されてからその画像がクライアント装置で再生されるまでのタイムラグが小さくなるように(すなわち、クライアント装置でよりリアルタイムに近い映像を表示部に表示することが出来るように)、再生することが可能となる。本動作例では、ベースレイヤを構成する10個のムービーフラグメントに関するデータのうち40から44までの値をタイムスタンプとして含む5つのデータが削除される。削除は、マルチパートの各パートのヘッダ部に記載されたタイムスタンプ情報を参照することで行う。
結果として、処理部220は、図11(b)の左側のレスポンスデータ5B-1から点線部分で囲まれた部分を削除して、図11(b)の右側のレスポンスデータ5B-3を抽出する。
最後に、プロキシサーバ200は、抽出したレスポンスデータ5B-3をクライアント装置100―2に送信する(S39)。これにより、クライアント装置100-2でもライブ映像の再生が開始されることになる。
クライアント装置100-2では、タイムスタンプの値が45であるムービーフラグメントから再生が開始されるため、タイムスタンプの値が40であるムービーフラグメントから再生が開始する実施例1と比べ、クライアント装置100-2で再生中の映像と、ライブカメラで生成中の映像と、のタイムラグが小さくなることになる。
次に、通信システム1のさらに別の一動作例について、図6、図7、図12および図13を参照しながら説明する。
(動作例3)
図12は、動作例3を示すシーケンス図であり、図13は、図12のシーケンス図に従った動作中にやり取りされるHTTPメッセージを示している。図13(a)はステップS68にてプロキシサーバ200がコンテンツサーバ300に送信するリクエストデータ4Dを示している。また、図13(b)の左上のデータは、ステップS69にてコンテンツサーバ300から送信されるレスポンスデータ5Cを示しており、図13(b)の左下のデータは、ステップS61にてコンテンツサーバ300から送信されるレスポンスデータ5B-4を示している。さらに、図13(b)の右側のデータは、ステップS70にてプロキシサーバ200がクライアント装置に送信するレスポンスデータ5B-5を示している。
図12は、動作例3を示すシーケンス図であり、図13は、図12のシーケンス図に従った動作中にやり取りされるHTTPメッセージを示している。図13(a)はステップS68にてプロキシサーバ200がコンテンツサーバ300に送信するリクエストデータ4Dを示している。また、図13(b)の左上のデータは、ステップS69にてコンテンツサーバ300から送信されるレスポンスデータ5Cを示しており、図13(b)の左下のデータは、ステップS61にてコンテンツサーバ300から送信されるレスポンスデータ5B-4を示している。さらに、図13(b)の右側のデータは、ステップS70にてプロキシサーバ200がクライアント装置に送信するレスポンスデータ5B-5を示している。
なお、この動作例は、動作例1および動作例2と異なり、同一のライブ映像のコンテンツデータについて、クライアント装置100-2がSDクオリティのコンテンツデータを要求した後に、クライアント装置100-1がHDクオリティのコンテンツデータを要求した場合の動作例である。また、前提として、動作の開始前にプロキシサーバ200のキャッシュは空であるものとし、動作の開始時点でコンテンツサーバ300は期間0のムービーフラグメントを配信中であるものとする。
まず、クライアント装置100-2は、マルチパートのリクエストデータ4Aをプロキシサーバ200に送信する(S51)。プロキシサーバ200はリクエストデータ4Aをそのままコンテンツサーバ300に転送する(S52)。
リクエストデータ4Aを受信したコンテンツサーバ300は、現在配信中である(クライアント装置100-2に新たに配信開始可能な)期間0の初期レスポンスデータ5Aをプロキシサーバ200に送信する(S53)。プロキシサーバ200は初期レスポンスデータ5Aをキャッシュせずにそのままクライアント装置100-2に転送する(S54)。
期間0の初期レスポンスデータ5Aを受信したクライアント装置100-2は、期間0のSDクオリティのリクエストデータ4Bをプロキシサーバ200に送信する(S55)。プロキシサーバ200の処理部220は、S55にて送信されたリクエストデータ4Bについてクライアント装置100-2に送信すべきレスポンスデータ5B(メディアセグメント)を構成する全部または一部の階層がキャッシュに含まれているか判定する。ここでは、キャッシュが空なので、プロキシサーバ200はリクエストデータ4Bをそのままコンテンツサーバ300に送信する(S56)。前述の通り、判定は、過去に受信した(キャッシュした)リクエストデータのリクエスト行、及びキャッシュしたレスポンスデータのヘッダ部を参照して行う。
リクエストデータ4Bを受信したコンテンツサーバ300は、要求された期間0の最上位階層がSDクオリティのレスポンスデータ5Bをプロキシサーバ200に送信する(S57)。レスポンスデータ5Bを受信したプロキシサーバ200の処理部220は、レスポンスデータ5Bをキャッシュする。そして、プロキシサーバ200は、レスポンスデータ5Bをそのままクライアント装置100-2に送信する(S58)。
以降、S55~S58の処理を繰り返し、次に、クライアント装置100-2は、期間2のSDクオリティのリクエストデータ4Bをプロキシサーバ200に送信する(S59)。S60~S62の処理は、S56~S58の処理と同様の処理であるが、図13(b)の左下に示されているようなレスポンスデータ5B-4がS61にてプロキシサーバ200に送信され、プロキシサーバ200は、レスポンスデータ5B-4をキャッシュするようになっている。
ここで、図示しない操作部を介してユーザによる再生指示を受け付けたクライアント装置100-1は、マルチパートのリクエストデータ4Aをプロキシサーバ200に送信する(S63)。そして、クライアント装置100-1と、プロキシサーバ200と、コンテンツサーバ300と、の間で、S52~S54と同様の処理であるS64~S66の処理が行われる。
そして、S66において送信された期間2の初期レスポンスデータ5Aを受信したクライアント装置100-1は、期間2のHDクオリティのリクエストデータ4Bを送信する(S67)。
ここで、プロキシサーバ200の処理部220は、S67にて送信されたリクエストデータ4Bについてクライアント装置100-1に送信すべきレスポンスデータ5B-5を構成する全部または一部の階層がキャッシュに含まれているか判定する。判定は、過去に受信した(キャッシュした)リクエストデータのリクエスト行、及びキャッシュしたレスポンスデータのヘッダ部を参照することで行われる。キャッシュには、図13(b)の左下に示すレスポンスデータ5B-4がすでに含まれているが、レスポンスデータ5B-4は、期間2の最上位階層がSDクオリティのレスポンスデータである。
したがって、ここでは、レスポンスデータ5B-5を構成する一部の階層(すなわちSDクオリティの階層)が含まれていると判定する。レスポンスデータ5B-4がSDクオリティの階層を含むことは、このレスポンスデータ5B-4を要求したリクエストデータ4Bのリクエスト行からわかる。また、対応するHDクオリティのデータがあることが、レスポンスデータ5B-4のヘッダ部の「X-Cntent-Sd-Url:」「X-Cntent-Hd-Url:」行からわかる。
レスポンスデータ5B-5を構成する一部の階層がキャッシュに含まれていると判定した場合、プロキシサーバ200は、残りの必要な階層(すなわちここではHDクオリティの階層)のみを要求するリクエストデータ4Dを生成してコンテンツサーバ300に送信する(S68)。
リクエストデータ4Dを受信したコンテンツサーバ300は、期間2のHDクオリティのみのレスポンスデータ5C(第3のコンテンツデータ)をプロキシサーバ200に送信する(S69)。
そして、プロキシサーバ200の処理部220は、キャッシュ済みのレスポンスデータ5B-4(第2のコンテンツデータ)と、S69にて送信されたレスポンスデータ5Cと、をマージする。すなわち、図13(b)の左上の図において一点鎖線で囲まれた部分(すなわち、レスポンスデータ5Cに含まれる、拡張レイヤビットストリームを構成する10個のムービーフラグメントに関するデータ)と、図13(b)の左下の図において破線で囲まれた部分(すなわち、レスポンスデータ5B-4に含まれる、ベースレイヤビットストリームを構成する10個のムービーフラグメントに関するデータ)と、の両方を含むレスポンスデータ5B-5を生成する。この処理は、マルチパートの各パートのヘッダ部に記載されたコンテンツタイプを示す情報(図13中、ムービーフラグメントのデータがbaseかenhcかを示すname)及びタイムスタンプ情報を参照することで容易に行うことができる。
最後に、プロキシサーバ200は、マージにより生成したレスポンスデータ5B-5(第1のコンテンツデータ)をクライアント装置100―1に送信する(S70)。これにより、クライアント装置100-1でもライブ映像の再生が開始されることになる。
以上のように、プロキシサーバ200は、従来のプロキシサーバと異なり、最上位階層がHDクオリティのスケーラブル映像の配信要求を受け取った場合に、最上位階層がSDクオリティのスケーラブル映像がキャッシュに含まれていれば、HDクオリティの映像のみを要求する配信要求をコンテンツサーバ300に送信する(従来のプロキシサーバでは、最上位階層がHDクオリティのスケーラブル映像の配信要求をそのままコンテンツサーバに送信する)。
従って、従来のプロキシサーバでは、コンテンツサーバからHDクオリティおよびSDクオリティの2つの階層を含むスケーラブル映像を受信することになるが、プロキシサーバ200では、コンテンツサーバからHDクオリティの階層のみのスケーラブル映像を受信することになる。
これにより、通信システム1のプロキシサーバ200とコンテンツサーバ300との間の基幹ネットワークの帯域負荷は、プロキシサーバ200を従来のプロキシサーバに置き換えた場合における基幹ネットワークの帯域負荷に比べ小さくなる。
さらに、上述したように、送信すべきレスポンスデータを構成する全部または一部の階層がキャッシュに含まれているかの判定、並びに、最上位階層がHDクオリティのスケーラブル映像のレスポンスデータを形成する処理は、リクエストデータのリクエスト行、レスポンスデータのヘッダ部、及びマルチパートの各パートのヘッダ部のみを参照することで行われ、ムービーフラグメントのデータ自体を確認する必要がない。加えて、レスポンスデータの形成の処理は、マルチパートの各パートのデータを順に配列するHTTPレスポンスデータからHTTPレスポンスデータへの置換処理に過ぎないため、極めて容易に実現できる。このように、本実施形態の通信システムでは、異なる配信要求をするクライアント装置が多数ある場合でも、プロキシサーバの処理の負荷を抑えたコンテンツデータの配信が可能である。
次に、通信システム1のさらに別の一動作例について、図6、図7、図14および図15を参照しながら説明する。
(動作例4)
図14および図15は、動作例4を示すシーケンス図であり、図15のシーケンス図で表わされる各ステップの処理は、図14のシーケンス図で表わされる各ステップの処理が終了した後に開始される。
図14および図15は、動作例4を示すシーケンス図であり、図15のシーケンス図で表わされる各ステップの処理は、図14のシーケンス図で表わされる各ステップの処理が終了した後に開始される。
なお、この動作例では、2つのクライアント装置100-1、100-2の両方で映像を再生中の場合において、プロキシサーバ200がクライアント装置100-2から期間tのSDクオリティのリクエストデータ4Bを受信したときにキャッシュに期間tのレスポンスデータが含まれていなければ、プロキシサーバ200は、期間tのHDクオリティのリクエストデータ4Bをコンテンツサーバ300に送信するようになっている。
S81~S92の処理は、動作例3のS51~S62の処理と同様の処理であるので説明を省略する。
図示しない操作部を介してユーザによる再生指示を受け付けたクライアント装置100-1は、マルチパートのリクエストデータ4Aをプロキシサーバ200に送信する(S93)。そして、クライアント装置100-1と、プロキシサーバ200と、コンテンツサーバ300と、の間で、S64~S66と同様の処理であるS94~S96の処理が行われる。
そして、S96において送信された期間3の初期レスポンスデータ5Aを受信したクライアント装置100-1は、期間3のHDクオリティのリクエストデータ4Bを送信する(S97)。
ここで、プロキシサーバ200の処理部220は、S97にて送信されたリクエストデータ4Bについてクライアント装置100-1に送信すべきレスポンスデータ5Bを構成する全部または一部の階層がキャッシュに含まれているか判定する。前述の通り、判定は、過去に受信した(キャッシュした)リクエストデータのリクエスト行、及びキャッシュしたレスポンスデータのヘッダ部を参照して行う。キャッシュには、ステップS91にて送信された期間3の最上位階層がSDクオリティのレスポンスデータ5Bが記録されている。したがって、ここでは、クライアント装置100-1に送信すべきレスポンスデータ5Bを構成する一部の階層(すなわちSDクオリティの階層)がキャッシュに含まれていると判定する。
クライアント装置100-1に送信すべきレスポンスデータ5Bを構成する一部の階層(換言すれば、該一部の階層からなるムービーフラグメント)がキャッシュに含まれていると判定した場合、プロキシサーバ200は、S97にて送信されたリクエストデータ4Bをそのままコンテンツサーバ300に転送する(S98)。
そして、リクエストデータ4Bを受信したコンテンツサーバ300は、期間3の最上位階層がHDクオリティのレスポンスデータ5Bをプロキシサーバ200に送信する(S99)。さらに、プロキシサーバ200の処理部220は、S91にて既にキャッシュされている最上位階層がSDクオリティのレスポンスデータ5Bを、S99で新たに受信した最上位階層がHDクオリティのレスポンスデータ5Bで上書きする。なお、上書きでなく単にキャッシュ部230の空いている領域に記録するようにしてもよい。そして、プロキシサーバ200は、この新たな最上位階層がHDクオリティのレスポンスデータ5Bをクライアント装置100-1に送信する(S100)。
この時点から、クライアント装置100-1ではHDクオリティの映像が再生され、クライアント装置100-2ではSDクオリティの映像が再生されている状態となる。
以降、クライアント装置100-1が期間t(t≧4)のHDクオリティのリクエストデータ4Bを送信する前に、クライアント装置100-2が、期間tのSDクオリティのリクエストデータ4Bを送信し、プロキシサーバ200はその順で各クライアント装置からのリクエストデータを受信することとなる。
クライアント装置100-2は、期間4のSDクオリティのリクエストデータ4Bを送信する(S101)。
リクエストデータ4Bを受信したプロキシサーバ200の処理部220は、S101にて送信されたリクエストデータ4Bについてクライアント装置100-2に送信すべきレスポンスデータ5Bを構成する全部または一部の階層がキャッシュに含まれているか判定する。キャッシュには期間4のレスポンスデータが記録されていないので、プロキシサーバ200は、「含まれていない」と判定する。
「含まれていない」と判定した場合、プロキシサーバ200は、さらに以下の処理を行う。
すなわち、処理部220は、既に接続が確立されている他の全てのクライアント装置(ここでは、クライアント装置100-1のみ)について、受信したリクエストデータ4Bよりも上位の階層で同じコンテンツを再生しているクライアント装置が存在するかを判定する。処理部220は、存在すると判定した場合、そのクライアント装置で再生されている該コンテンツの最上位階層(最高解像度)がどの階層であるか(すなわち、該コンテンツの階層数M)を検出する。判定および検出は、過去に受信した(キャッシュした)リクエストデータのリクエスト行、及びキャッシュしたレスポンスデータのヘッダ部を参照することにより、行うことが可能である。ここでは、直前のクライアント装置100-1との通信処理の工程であるS97において、期間3の最上位階層がHDクオリティのリクエストデータをクライアント装置100-1から受信している。このことから、処理部220は、クライアント装置100-1がHDクオリティの映像を再生していると判定し、期間4の最上位階層をHDクオリティとする要求(より多くの階層(階層数M=2)からなる第1のコンテンツデータを対象とする要求)をいずれ受信することを推定する。なお、コンテンツの解像度(階層)が3段階(3階層)以上存在する場合であって、尚且つ、リクエストデータ4Bを送信したクライアント装置よりも上位の階層で当該クライアント装置と同じコンテンツを再生しているクライアント装置が複数台存在する場合には、処理部220は、複数台のクライアント装置のうち最も上位の階層でコンテンツを再生しているクライアント装置を特定してもよい。そして、処理部220は、特定したクライアント装置が再生しているコンテンツの階層数Mを検出してもよい。
このようにして、処理部220は、他の各クライアント装置が再生している映像中の最高解像度(ここでは、クライアント装置100-1のHDクオリティ)を認識する。
そして、プロキシサーバ200は、期間4の認識した最高解像度(HDクオリティ)のリクエストデータ4Bをコンテンツサーバ300に送信する(S102)。
リクエストデータ4Bを受信したコンテンツサーバ300は、期間4の最上位階層がHDクオリティのレスポンスデータ5B-1を送信する(S103)。
プロキシサーバ200は、受信したレスポンスデータ5B-1をキャッシュするとともに、キャッシュしたレスポンスデータ5B-1(図9の左側に示すデータ)から最上位階層がSDクオリティのレスポンスデータ5B-2(図9の右側に示すデータ)を抽出する。
そして、プロキシサーバ200は、抽出したレスポンスデータ5B-2をクライアント装置100-2に送信する(S104)。
次に、クライアント装置100-1は、期間4のHDクオリティのリクエストデータ4Bを送信する(S105)。
リクエストデータ4Bを受信したプロキシサーバ200の処理部220は、S105にて送信されたリクエストデータ4Bについてクライアント装置100-1に送信すべきレスポンスデータ5B-1を構成する全部または一部の階層がキャッシュに含まれているか判定する。キャッシュには、クライアント装置100-1に送信すべきレスポンスデータ5B-1(S103の処理の直後にキャッシュされたレスポンスデータ)そのものが含まれている。
プロキシサーバ200は、クライアント装置100-1に送信すべきレスポンスデータ5B-1そのものがキャッシュに含まれていると判定したので、レスポンスデータ5B-1をキャッシュから読み出してそのままクライアント装置100-1に送信する(S106)。
以上のように、動作例4では、SDクオリティの映像を再生中のクライアント装置100-2から期間tのリクエストデータを受信したときにHDクオリティの映像を再生中のクライアント装置100-1から期間tのリクエストデータをまだ受信していなければ、プロキシサーバ200は、期間tのHDクオリティのリクエストデータをコンテンツサーバ300に送信する。
これにより、その後、HDクオリティの映像を再生中のクライアント装置100-1から期間tのリクエストデータを受信したときには、クライアント装置100-1に送信すべきレスポンスデータはキャッシュされている。
したがって、期間tの映像をクライアント装置100-1および100-2の両装置が再生するためにプロキシサーバ200がコンテンツサーバ300との間で行われるHTTP通信は常にたかだか1往復となる。これは、映像を再生中のクライアント装置が3台以上に増えた場合であっても同様である。
これにより、プロキシサーバ200およびコンテンツサーバ300でのHTTP通信に要する処理負荷が抑制されることになる。
(プロキシサーバ200の動作)
以上、状況に応じた通信システム1の動作例を、動作例1~動作例4として説明した。以下では、配信要求のリクエストデータ4Bをクライアント装置から受信してから対応するレスポンスデータ(メディアセグメント)5Bを該クライアント装置に送信するまでのプロキシサーバ200の動作を、図5、図6、図9、図13、および図16を参照しながら説明する。
以上、状況に応じた通信システム1の動作例を、動作例1~動作例4として説明した。以下では、配信要求のリクエストデータ4Bをクライアント装置から受信してから対応するレスポンスデータ(メディアセグメント)5Bを該クライアント装置に送信するまでのプロキシサーバ200の動作を、図5、図6、図9、図13、および図16を参照しながら説明する。
図16は、プロキシサーバ200の動作を示すフローチャートである。
最初に、プロキシサーバ200のリクエスト受信部210は、クライアント装置からリクエストデータを受信する(S301)。
リクエスト受信部210からリクエストデータを供給された処理部220は、リクエストデータで指定された期間のレスポンスデータ(メディアセグメント)がキャッシュ部230にキャッシュされているか否かを判定する(S302)。
キャッシュされていると判定された場合(S302においてYES)、処理部220は、キャッシュ部230にキャッシュされているレスポンスデータがクライアント装置に送信すべきレスポンスデータそのものであるかを判定する(S303)。すなわち、クライアント装置に送信すべきメディアセグメントの最上位階層と、キャッシュに記録されているメディアセグメントの最上位階層と、が一致するかを判定する。
レスポンスデータそのものであると判定された場合(S303においてYES)、S312に進む。一方、レスポンスデータそのものでないと判定された場合(S303においてNO)、S304に進む。
処理部220は、キャッシュ部230にキャッシュされているレスポンスデータ(第2のコンテンツデータ)がクライアント装置に送信すべきレスポンスデータ(第1のコンテンツデータ)を構成する全階層を含んでいるか(換言すれば、キャッシュ部230にキャッシュされているレスポンスデータを構成する階層の集合が、クライアント装置に送信すべきレスポンスデータを構成する階層の集合にクライアント装置に向けて送信すべきレスポンスデータを構成しない階層を要素として加えた集合になっているか)を判定する(S304)。すなわち、キャッシュ部230にキャッシュされているメディアセグメントの最上位階層がクライアント装置に送信すべきメディアセグメントの最上位階層よりも階層が高いかを判定する。
キャッシュ部230に全階層を含んでいると判定した場合(S304においてYES)、図9に示すように、処理部220は、キャッシュ部230のレスポンスデータからクライアント装置に送信すべきレスポンスデータの最上位階層よりも高い階層のデータ(第1のコンテンツデータを構成しない再生対象コンテンツ)を削除することにより、クライアント装置に送信すべきレスポンスデータを抽出する(S305)。
一方、キャッシュ部230に全階層を含んでいない(すなわち一部の階層を含んでいる)と判定した場合(S304においてNO)、処理部220は、キャッシュ部230のレスポンスデータの最上位階層よりも高い階層のデータについてのみ配信を要求するリクエストデータを生成し、リクエスト送信部240は、処理部220が生成したリクエストデータをコンテンツサーバ300に送信する(S306)。
その後、レスポンス受信部250は、リクエスト送信部240が送信したリクエストデータに対応するレスポンスデータを受信する(S307)。
図13(b)に示すように、処理部220は、キャッシュ部230のレスポンスデータと、レスポンス受信部250が受信したレスポンスデータと、をマージすることにより、クライアント装置に送信すべきレスポンスデータを生成する(S308)。
さらに処理部220は、マージされたレスポンスデータをキャッシュ部230にキャッシュする(S313)。
一方、リクエストデータで指定された期間のレスポンスデータ(メディアセグメント)がキャッシュ部230に全くキャッシュされていないと判定された場合(S302においてNO)、処理部220は、リクエスト受信部210がS301にて受信したリクエストデータをそのままコンテンツサーバ300に送信する(S309)。
その後、レスポンス受信部250は、リクエスト送信部240が送信したリクエストデータに対応するレスポンスデータを受信し(S310)、処理部220は、レスポンス受信部250が受信したレスポンスデータをキャッシュ部230にキャッシュする(S311)。
最後に、S312において、クライアント装置にレスポンスデータを送信する。
また、図24は、動作例4のプロキシサーバ200の動作を示すフローチャートである。図24のフローチャートを見るとわかるように、このフローチャートは、図16のフローチャートにおけるS308およびS309の工程を、S314の「レスポンス受信部250が受信したレスポンスデータを、処理部220がキャッシュする」工程に置き換えた形で表される。
(プロキシサーバ200の利点)
以上のように、プロキシサーバ200は、クライアント装置100-1からSDクオリティおよびHDクオリティの映像を含むレスポンスデータ5B-5を要求するリクエストデータ5Aを受信した場合に、処理部220は、レスポンスデータ5B-5に含めるべきSDクオリティおよびHDクオリティのいずれかの映像を含むレスポンスデータがキャッシュ部230に記録されているか否かを判定する。
以上のように、プロキシサーバ200は、クライアント装置100-1からSDクオリティおよびHDクオリティの映像を含むレスポンスデータ5B-5を要求するリクエストデータ5Aを受信した場合に、処理部220は、レスポンスデータ5B-5に含めるべきSDクオリティおよびHDクオリティのいずれかの映像を含むレスポンスデータがキャッシュ部230に記録されているか否かを判定する。
動作例3では、処理部220は、SDクオリティの映像を含むレスポンスデータ5B-4がキャッシュ部230に記録されていると判定し、図13(b)に示すように、キャッシュ部230に記録されているレスポンスデータ5B-4を用いて要求されるレスポンスデータ5B-5を生成する。すなわち、プロキシサーバ200は、HDクオリティの映像のみを含むレスポンスデータをコンテンツサーバ300から受信することになる。
一方、従来のプロキシサーバは、クライアント装置100-1からSDクオリティおよびHDクオリティの映像を含むレスポンスデータ5B-5を要求するリクエストデータ5Aを受信した場合に、レスポンスデータ5B-5そのものがキャッシュに記録されていなければ、HDクオリティおよびSDクオリティの両方の映像を含むレスポンスデータ5B-5をコンテンツサーバ300から受信することになる。
また、動作例4では、処理部220は、HDクオリティのリクエストデータ4Bがいずれ受信されることを推定する。そして、リクエスト受信部210がSDクオリティのリクエストデータ4Bを受信した時点で、リクエスト送信部240は、コンテンツサーバ300に最上位階層がHDクオリティのレスポンスデータ5B-1を要求する。その後、処理部220は、コンテンツサーバ300から受信したレスポンスデータ5B-1をキャッシュ部230にキャッシュする。
そして、その後のSDクオリティのリクエストデータ4Bに対しては、処理部220は、キャッシュされた最上位階層がHDクオリティのレスポンスデータ5B-1から最上位階層がSDクオリティのレスポンスデータ5B-2を抽出し、レスポンス送信部260がレスポンスデータ5B-2をクライアント装置に送信する。また、その後受信されるHDクオリティのリクエストデータ4Bに対しては、既にキャッシュされているHDクオリティのレスポンスデータ5B-1を送信する。従って、コンテンツサーバ300への要求は、最上位階層がHDクオリティのレスポンスデータ5B-1の要求1回のみとされる。
したがって、プロキシサーバ200は、従来のプロキシサーバよりも、空間解像度スケーラブルな映像を多数のクライアント装置に中継することに起因するコンテンツサーバとの間のネットワークの帯域負荷を抑えることができる。
(実施形態2)
次に、本発明の別の一実施形態に係る通信システム1aについて、図17~図19を参照しながら以下に説明する。
次に、本発明の別の一実施形態に係る通信システム1aについて、図17~図19を参照しながら以下に説明する。
通信システム1aは、図17に示すように、クライアント装置100-1、100-2、プロキシサーバ200a、およびコンテンツサーバ300’により構成されている。
実施形態1では、コンテンツサーバ300が、ライブ映像を再生中のクライアント装置に対し、メディアセグメント単位でライブ映像のコンテンツデータを送信していた。対して、本実施形態では、コンテンツサーバ300’が、ライブ映像を再生中のクライアント装置に対し、HTTPプロトコルの転送コーディング形式であるチャンク形式によりライブ映像のコンテンツデータを配信するようになっている。
チャンク形式とは、チャンクデータと、チャンクのデータサイズを表わすチャンクサイズ情報と、を含むチャンクをHTTPメッセージのボディ部に順に格納し、最後に格納したチャンクの後にチャンクの終わりを示す“0”とHTTPメッセージ全体のデータサイズを示したフッタを付ける転送コーディング形式であり、予め全体のデータサイズが判らないようなコンテンツであっても送信可能とする転送形式である。
すなわち、本実施形態では、1つのリクエストデータ(4F)に対して、配信するコンテンツの先頭のデータから順次チャンクに詰められたレスポンスデータ(5D-1)が返される。さらに、キャッシュされたレスポンスデータ中のチャンク(ムービーフラグメント)は、キャッシュのサイズに応じて過去のものから順にキャッシュから削除されていく。
図17からわかるように、本実施形態の通信システム1aの構成は、実施形態1の通信システム1の構成と、以下の点のみ異なっている。
すなわち、プロキシサーバ200aの処理部220aは、図19(b)の左側の図に示すような(キャッシュに残されている)チャンク形式の最上位階層がHDクオリティのデータから、図19(b)の右側の図に示すようなチャンク形式の最上位階層がSDクオリティのデータを抽出する処理を行うようになっている。
また、コンテンツサーバ300’の処理部320’は、リクエスト受信部310からリクエストデータが供給されたときに、チャンク形式のレスポンスデータを生成してレスポンス送信部330に供給するようになっている。
以下、図18および図19を参照しながら通信システム1aの一動作例について説明する。
図18は、上記動作例を示すシーケンス図である。図19は図18のシーケンス図で示される動作例中で扱われるHTTPメッセージを示している。図19(a)は、ステップS111にてクライアント装置100-1から送信するリクエストデータ4Fを示している。また、図19(b)の左側の図は、ステップS113にてコンテンツサーバ300’がプロキシサーバ200aに送信するレスポンスデータ5D-1を示している。また、図19(b)の右側の図は、ステップS116にてプロキシサーバ200aがクライアント装置100-2に送信するレスポンスデータ5D-2を示している。
図19(b)の左側の図からわかるように、コンテンツサーバ300’は、ムービーフラグメントに関するデータ507(すなわち、ムービーフラグメントのバイナリデータとムービーフラグメントに関するメタ情報(タイムスタンプ等))をチャンクデータとしている。そして、図19(b)の左側の図中の文字列506が、そのチャンクのサイズを示している(文字列506の部分は、テキストデータではなく、16進数の数値データである)。
なお、この動作例は、同一のライブ映像のコンテンツデータについて、クライアント装置100-1がHDクオリティのリクエストデータを要求した後に、クライアント装置100-2がSDクオリティのリクエストデータを要求した場合の動作例である。また、前提として、動作の開始前にプロキシサーバ200aのキャッシュは空であるものとする。また、シーケンス図では、クライアント装置100-1、100-2と、コンテンツサーバ300’との間のリクエストデータ4Aおよびレスポンスデータ5Aのやりとりの記載を省略している。
クライアント装置100-1は、HDクオリティのリクエストデータ4Fをプロキシサーバ200aに送信する(S111)。
プロキシサーバ200aは、クライアント装置100-1から要求されたムービーフラグメントがキャッシュに含まれているか否かを判定する。ここでは、キャッシュが空なので、プロキシサーバ200aはリクエストデータ4Bをそのままコンテンツサーバ300’に送信する(S112)。
リクエストデータ4Fを受信したコンテンツサーバ300’は、受信した時点で配信すべき(図では時刻0からの)拡張レイヤおよびベースレイヤのムービーフラグメントをチャンク形式で格納したレスポンスメッセージ5D-1を生成し、プロキシサーバ200aに送信する(S113)。
プロキシサーバ200aは、受信したレスポンスメッセージ5D-1をキャッシュするとともに、クライアント装置100-1に送信する(S114)。
先に説明したとおり、チャンク形式により配信を行うコンテンツサーバ300’は、1つのリクエストデータ4Fを受信すると、コンテンツデータを構成するムービーフラグメントを最後のフラグメントまで順次送信する。そのため、プロキシサーバ200aのキャッシュ部230に記録されたレスポンスメッセージ5D-1中のチャンクは、キャッシュのサイズに合せて順次古いほうから削除されていく。
次に、クライアント装置100-2は、SDクオリティのリクエストデータ4Fをプロキシサーバ200aに送信する(S115)。
プロキシサーバ200aの処理部220aは、リクエストデータ4Fを受信したとき、SDクオリティのムービーフラグメントがキャッシュ部230にキャッシュされているか否かを判定する。具体的には、処理部220aは、プロキシサーバ200aが過去に受信した(キャッシュ部230にキャッシュした)リクエストデータのリクエスト行、及びキャッシュしたレスポンスデータのヘッダ部を参照することにより、判定を行う。
そして、処理部220aは、キャッシュ部230にキャッシュされていると判定した場合、キャッシュ部230に残されている最も古いベースレイヤのチャンク(ムービーフラグメント)から古い順にベースレイヤのチャンク(ムービーフラグメント)を抽出して、レスポンスデータ5D-2を形成する。ここでは、処理部220aは、タイムスタンプが30のベースレイヤのムービーフラグメントがキャッシュ部230に残されている最も古いムービーフラグメントであるとして、クライアント装置100-2に送信すべきレスポンスデータ5D-2を形成する。
抽出は、具体的には、チャンクに含まれるMIMEパートデータのうちコンテンツタイプを示すヘッダ情報を参照することによって行ってもよい。あるいは、実施形態1の動作例2と同様に、ライブ映像中のある画像がライブカメラで生成される時刻と、その画像がクライアント装置100において再生される時刻と、にタイムラグがあることを考慮してもよい。すなわち、タイムラグを縮めるために、キャッシュされているムービーフラグメントを古いほうから幾つか削除した上で、最も古いムービーフラグメントから古い順に抽出してレスポンスデータ5D-2を形成するようにしてもよい。
最後に、プロキシサーバ200aは、クライアント装置100-2にレスポンスデータ5D-2を送信する(S116)。
以上のように、プロキシサーバ200aは、プロキシサーバ200と同様、最上位階層がSDクオリティのスケーラブル映像の配信要求を受け取った場合に、最上位階層がHDクオリティのスケーラブル映像がキャッシュに含まれていれば、キャッシュから、最上位階層がSDクオリティのスケーラブル映像を抽出してクライアント装置に送信することになる。
これにより、通信システム1aのプロキシサーバ200aとコンテンツサーバ300’との間の基幹ネットワークの帯域負荷は、通信1のプロキシサーバ200aを従来のプロキシサーバに置き換えた場合における基幹ネットワークの帯域負荷に比べ小さくなる。
また、チャンク形式のデータは、チャンク毎のチャンクサイズを含むものの、全体のデータサイズを予め含んでいないことから、通信中に一部のチャンクが失われても再送を要することなくクライアント装置で映像を表示することが可能である。
したがって、通信システム1aではクライアント装置がより安定して映像を表示することができる。
また、プロキシサーバ200aは、接続しているクライアント装置の数が増大し、クライアント装置と、プロキシサーバ200aとの間のネットワークのトラフィックがある規定以上増大してしまった場合に、適応レート制御を行っても良い。ここで、適応レート制御とは、クライアント装置がHDクオリティの映像を要求してきた場合であっても、HDクオリティのムービーフラグメントの一部または全部を削除したレスポンスデータをクライアント装置に送信する処理である。
このようにすることにより、プロキシサーバ200aとクライアント装置との間のネットワークのトラフィックを減少させることができる。
(実施形態3)
さらに、本発明の別の一実施形態に係る通信システム1bについて、図20~図22を参照しながら以下に説明する。
さらに、本発明の別の一実施形態に係る通信システム1bについて、図20~図22を参照しながら以下に説明する。
通信システム1bは、図20に示すように、クライアント装置100-1、100’、プロキシサーバ200b、およびコンテンツサーバ300により構成されている。
実施形態1では、2つのクライアント装置100-1、100-2が、ともに、マルチパート形式でのデータ送信を要求するようになっていたが、本実施形態では、2つのクライアント装置のうち一方のクライアント装置100’がシングルパート形式でのデータ送信を要求するようになっている。
図20からわかるように、本実施形態の通信システム1aの構成は、実施形態1の通信システム1の構成と、以下の点のみ異なっている。
すなわち、クライアント装置100’のリクエスト送信部110’は、シングルパート形式でのデータ送信を要求するためのリクエストデータを送信する。
プロキシサーバ200bの処理部220bは、図22(b)の右段の図に示すような最上位階層がHDクオリティの(マルチパート形式の)レスポンスデータ5B-1から、図22(b)の左下段の図に示すようなSDクオリティのシングルパート形式のデータを抽出する処理を行うようになっている。
また、処理部220bは、シングルパート形式でのデータ送信を要求するためのリクエストデータ(シングルパートのリクエストデータ)4Eを受信した場合に、リクエストデータ4Eをマルチパートのリクエストデータ4Aに変換するようになっている。
以下、図21および図22を参照しながら通信システム1aの一動作例について説明する。
図21は、上記動作例を示すシーケンス図である。また、図22(a)の左側の図は、ステップS125にてクライアント装置100’がプロキシサーバ200bに送信するリクエストデータ4Eを示している。
クライアント装置100-1は、期間4のHDクオリティのリクエストデータ4Bをプロキシサーバ200aに送信する(S121)。
プロキシサーバ200bの処理部220bは、S121にて送信されたリクエストデータ4Bについてクライアント装置100-1に送信すべきレスポンスデータ5B(メディアセグメント)を構成する全部または一部の階層がキャッシュに含まれているか判定する。ここでは、キャッシュが空なので、プロキシサーバ200はリクエストデータ4Bをそのままコンテンツサーバ300に送信する(S122)。
リクエストデータ4Bを受信したコンテンツサーバ300は、要求された期間4の最上位階層がHDクオリティのレスポンスデータ5B-1をプロキシサーバ200に送信する(S123)。レスポンスデータ5B-1を受信したプロキシサーバ200は、レスポンスデータ5B-1をキャッシュするとともに、レスポンスデータ5B-1をそのままクライアント装置100-1に送信する(S124)。
一方、クライアント装置100’は、シングルパート形式でSDクオリティの映像を配信するよう要求するリクエストデータ4Eをプロキシサーバ200bに送信する(S125)。ここで、要求がシングルパート形式であることは、リクエストデータ4Eのヘッダ部のAcceptに文字列“multipart/media-segment”が宣言されていないことにより表されている。また、マルチパート非対応であることから、スケーラブルデコードが不可であり、クライアント装置100’の復号可能なデータはベースレイヤのSDクオリティのデータに限られることがわかる。これに対して、コンテンツサーバ300はマルチパート対応であることから、リクエストデータ4Eを受信したプロキシサーバ200bの処理部220bは、リクエストデータ4Eのヘッダ部のAcceptに文字列”multipart/media-segment”を追加して、マルチパートのリクエストデータ4Aを生成する。
そして、プロキシサーバ200bは、マルチパートのリクエストデータ4Aをコンテンツサーバ300に送信する(S126)。
コンテンツサーバ300は、図22(b)の左上段の図に示している期間4の初期レスポンスデータ5Aをプロキシサーバ200bに送信する(S127)。
期間4の初期レスポンスデータ5Aを受信したプロキシサーバ200bの処理部220bは、期間4のベースレイヤ(SDクオリティ)を階層に含むレスポンスデータ(メディアセグメント)がキャッシュに記録されているかを判定する。前述の通り、判定は、過去に受信した(キャッシュした)リクエストデータのリクエスト行、及びキャッシュしたレスポンスデータのヘッダ部を参照して行う。S123の直後に、期間4の最上位階層が拡張レイヤ(HDクオリティ)のレスポンスデータ5B-1がキャッシュに記録されているので、ここでは、「キャッシュに記録されている」と判定する。
「キャッシュに記録されている」と判定した場合、処理部220bは、クライアント装置100’に送信すべき期間4のシングルパート形式のレスポンスデータ5Eを生成する。
すなわち、処理部220bは、クライアント装置100’に送信すべきレスポンスデータ5Eのヘッダ部として、レスポンスデータ5B-1中のレスポンス行“HTTP/1.1 200 OK”およびMIMEパート中のコンテンツタイプを示すヘッダ”Content-Type:video/mp4”を抽出する。
さらに、処理部220bは、レスポンスデータ5Eのボディ部を次のように形成する。すなわち、処理部220bは、S124にてキャッシュされたレスポンスデータ5B-1に含まれるベースレイヤの各ムービーフラグメントのうち、先頭のムービーフラグメント(fragmentB40)のヘッダを、moofヘッダから、S127にて受信した初期レスポンスデータ5A中のベースレイヤの先頭ムービーフラグメント(fragmentB0)のmoovヘッダに置換する。その上で、ヘッダ置換後のfragmentB40、fragmentB41、・・、およびfragmentB49(図22(b)の右側の図の破線で囲まれた部分)を結合したデータをレスポンスデータ5Eのボディ部のデータとする。moovヘッダからmoofヘッダにヘッダを置換する処理以外の処理は、マルチパートの各パートのヘッダ部を参照することにより、ムービーフラグメントの中のデータを参照することなく行われる。
最後に、プロキシサーバ200bは、クライアント装置100’にレスポンスデータ5Eを送信する(S128)。
以上のように、通信システム1bでは、スケーラブル映像の再生に対応したクライアント装置100-1であっても、スケーラブル映像の再生に対応していないクライアント装置100’であっても、コンテンツサーバ300が配信するライブ映像を再生することができる。
また、殆どの処理がリクエストデータのリクエスト行、レスポンスデータのヘッダ部、及びマルチパートの各パートのヘッダ部のみを参照することで行われ、ムービーフラグメントのデータ自体を確認する必要がないため、上記した通信システム1bは容易に実現可能である。
(付記事項1)
なお、上記各実施形態では、通信システム1(1a、1b)に、1つのコンテンツサーバ300(300’)、1つのプロキシサーバ200(200aまたは200b)、2つのクライアント装置100-1、100-2(100-1、100’)が設けられているものとしたが、通信システム1、1a、1bを構成する各サーバおよびクライアント装置の数は当然これに限定されない。また、各実施形態では、空間スケーラブル映像を構成する階層の数が、基本レイヤと拡張レイヤとの2つであるものとしたが、階層の数はこれに限定されない。すなわち、QCIF映像を保持するレイヤとSD映像を保持するレイヤとHD映像を保持するレイヤとの3つの階層で空間スケーラブル映像(つまり、品質の異なる最大3個の映像からなる空間スケーラブル映像)が構成されていてもよいし、4つ以上の階層で構成されていてもよい。
(付記事項1)
なお、上記各実施形態では、通信システム1(1a、1b)に、1つのコンテンツサーバ300(300’)、1つのプロキシサーバ200(200aまたは200b)、2つのクライアント装置100-1、100-2(100-1、100’)が設けられているものとしたが、通信システム1、1a、1bを構成する各サーバおよびクライアント装置の数は当然これに限定されない。また、各実施形態では、空間スケーラブル映像を構成する階層の数が、基本レイヤと拡張レイヤとの2つであるものとしたが、階層の数はこれに限定されない。すなわち、QCIF映像を保持するレイヤとSD映像を保持するレイヤとHD映像を保持するレイヤとの3つの階層で空間スケーラブル映像(つまり、品質の異なる最大3個の映像からなる空間スケーラブル映像)が構成されていてもよいし、4つ以上の階層で構成されていてもよい。
また、上記各実施形態では、本発明に係る中継装置が中継するコンテンツデータの例として、空間解像度(品質)が相異なる複数の階層の映像(再生対象映像)からなる空間解像度スケーラブル映像のコンテンツデータを挙げた。本発明に係る中継装置が中継するコンテンツデータはこれに限られず、量子化精度の異なる複数の階層を持つSNRスケーラブルな映像のコンテンツデータであってもよい。あるいは、コンテンツデータは、クロマフォーマットの異なる複数の階層(例えば、4:2:0,4:2:2,4:4:4の3つの階層)を持つクロマスケーラブルな映像のコンテンツデータであってもよい。あるいは、フレームレートの異なる複数の階層を持つ時間スケーラブルな映像のコンテンツデータ等であってもよい。
さらに、動的コンテンツのデータは、量子化ビット数の異なる複数の階層(例えば、16bit,8bit,4bit)を持つスケーラブル音声のコンテンツデータであってもよい。
あるいは、本発明の上記各実施形態を適用する他の例として、マルチ言語映像のライブ配信をあげることもできる。すなわち、映像データをベースレイヤとし、音声データ1、2、・・・のそれぞれを拡張レイヤと解釈して本発明の上記各実施形態を適用することも可能である。また、映像データ+音声データ1をベースレイヤとし、音声データ2、3、・・・を音声データ1に上書き置換して再生する拡張レイヤとして本発明の上記各実施形態を適用することも可能である。(すなわち拡張レイヤを用いることで、音声データ1以外の言語に対応可能になる。例えば、音声データ1を日本語音声とし、音声データ2を英語、音声データ3をフランス語音声とする。ベースレイヤのみを再生するクライアント装置(利用者)は日本語で映像コンテンツを再生(視聴)する。拡張レイヤを再生可能なクライアント装置(利用者)は音声データ2又は3を得て英語またはフランス語で映像コンテンツを再生(視聴)する。)さらには、映像データ+音声データをベースレイヤとし、字幕やピクチャインピクチャ等による重畳画像や重畳映像等を拡張レイヤとして本発明の上記各実施形態を適用することも可能である(すなわち拡張レイヤを用いることで、字幕の追加、変更や特典映像の視聴が可能になる)。
(付記事項2)
ムービーフラグメントの期間の長さは1秒に限られない。また、メディアセグメントの期間の長さは10秒に限られない。すなわち、例えば、ムービーフラグメントの期間の長さをMPEG-4の符号化の単位であるGOP(Group of Picture)に合せて0.5秒としてもよいし、2秒等の長いものにすることも可能である。また、コンテンツサーバ300は、メディアセグメントの期間の長さを、HTTPメッセージの発生頻度に応じてユーザが設定した長さに適宜変更可能な構成となっていてもよい。すなわち、目的や状況に応じて、ユーザはメディアセグメントの期間の長さを30秒あるいは1分等としてリクエストメッセージおよびレスポンスメッセージの発生頻度を抑えるようにすることもできるし、あるいは、頻繁に切替えが発生するような場合には5秒等にしてレスポンスを早くするようにしてもよい。
(付記事項2)
ムービーフラグメントの期間の長さは1秒に限られない。また、メディアセグメントの期間の長さは10秒に限られない。すなわち、例えば、ムービーフラグメントの期間の長さをMPEG-4の符号化の単位であるGOP(Group of Picture)に合せて0.5秒としてもよいし、2秒等の長いものにすることも可能である。また、コンテンツサーバ300は、メディアセグメントの期間の長さを、HTTPメッセージの発生頻度に応じてユーザが設定した長さに適宜変更可能な構成となっていてもよい。すなわち、目的や状況に応じて、ユーザはメディアセグメントの期間の長さを30秒あるいは1分等としてリクエストメッセージおよびレスポンスメッセージの発生頻度を抑えるようにすることもできるし、あるいは、頻繁に切替えが発生するような場合には5秒等にしてレスポンスを早くするようにしてもよい。
さらに、ムービーフラグメントの長さを可変にする(途中で変える)ことも可能である。メディアセグメントの長さを可変にする(格納されるムービーフラグメントの個数を変える)ことも可能である。
また、コンテンツデータを所定の長さに区切って取り扱えるようにしたデータ形式であれば、ムービーフラグメント以外のデータ形式であっても本発明を適用可能である。すなわち、本発明の通信システムが扱えるデータ形式はムービーフラグメント形式に限らない。例えば、MPEG-2のPES(Packetized Elementary Stream)パケットや、MPEG-2 TS(Transport Stream)のTSパケットを用いて本発明の通信システムを構成することもできる。すなわち、本発明の通信システムは、コンテンツデータを、所定の長さに区切った単位データ(PESパケット、TSパケット)毎にMIMEマルチパート形式でHTTPメッセージに格納する。これによって、プロキシサーバは、マルチパートの各パートに記録されたデータの中身を見なくとも、HTTPメッセージのヘッダ情報等を使って格納されたデータのフィルタリング、ハンドリングを行うことができる。
(プログラム、記憶媒体)
クライアント装置100-1(100-2、100’)、プロキシサーバ200(200a、200b)、及びコンテンツサーバ300(300’)の各ブロック、特に処理部220(220a、220b)、処理部320(320’)は、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
クライアント装置100-1(100-2、100’)、プロキシサーバ200(200a、200b)、及びコンテンツサーバ300(300’)の各ブロック、特に処理部220(220a、220b)、処理部320(320’)は、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
後者の場合、クライアント装置100-1、プロキシサーバ200、及びコンテンツサーバ300は、各機能を実現するプログラムの命令を実行するCPU、上記プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるクライアント装置100-1、プロキシサーバ200、及びコンテンツサーバ300の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記クライアント装置100-1、プロキシサーバ200、及びコンテンツサーバ300に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD-ROM/MO/MD/DVD/CD-R等の光ディスクを含むディスク類、ICカード(メモリカードを含む)/光カード等のカード類、マスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable logic device)やFPGA(Field Programmable Gate Array)等の論理回路類などを用いることができる。
また、上記プログラムコードは、通信ネットワークを介してクライアント装置100-1、プロキシサーバ200、及びコンテンツサーバ300に供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber Line)回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(Digital Living Network Alliance)、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
なお、ここで開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
以上のように、本発明に係る中継装置は、上記判定手段が、上記第2のコンテンツデータが上記記録部に記録されていると判定した場合に、さらに、上記第2のコンテンツデータが、上記第1のコンテンツデータを構成する全再生対象コンテンツと上記第1のコンテンツデータを構成しない再生対象コンテンツとを共に含んでいるかを判定するようになっており、上記判定手段が「共に含んでいる」と判定した場合には、上記生成手段は、生成すべき上記第1のコンテンツデータを上記第2のコンテンツデータから抽出することが望ましい。
上記の構成によれば、再生装置に送信すべき上記第1のコンテンツデータを構成する再生対象コンテンツの数が、上記記録部に記録されている上記第2のコンテンツデータを構成する再生対象コンテンツの数よりも少ない場合に、送信装置との間のネットワークに負荷をかけずに、上記第2のコンテンツデータから上記第1のコンテンツデータを生成することができる。
上記中継装置は、上記第2のコンテンツデータが上記記録部に記録されていると上記判定手段が判定した場合に、上記第1のコンテンツデータを構成する全再生対象コンテンツのうち、上記第2のコンテンツデータに含まれていない再生対象コンテンツを含む第3のコンテンツデータを上記送信装置から取得する取得手段をさらに備え、上記生成手段が、上記第2のコンテンツデータと上記第3のコンテンツデータとを用いて上記第1のコンテンツデータを生成することが望ましい。
上記の構成によれば、再生装置に送信すべき上記第1のコンテンツデータを構成する再生対象コンテンツの数が、上記記録部に記録されている上記第2のコンテンツデータを構成する再生対象コンテンツの数よりも多い場合であっても、上記第2のコンテンツデータから上記第1のコンテンツデータを生成することができる。
上記中継装置は、複数の再生装置から上記要求を受信する中継装置であって、上記N個の再生対象コンテンツは品質が相異なるN階層の階層データであり、各再生装置から次に受信することが予定される要求のうちの最も多くの階層からなる第1のコンテンツデータを対象とする要求について、当該第1のコンテンツデータを構成する階層データの階層数Mを推定する推定手段をさらに備え、上記第2のコンテンツデータが上記記録部に記録されていないと上記判定手段が判定した場合に、M階層の階層データからなる第2のコンテンツデータを上記送信装置から取得する取得手段をさらに備えていることが望ましい。
上記の構成によれば、上記中継装置は、内容が同一であって階層数が異なる第1のコンテンツデータを上記複数の再生装置から要求された場合であっても、上記内容の第2のコンテンツデータを送信装置から取得する回数はたかだか1回となる。
したがって、上記推定手段を備えていないような中継装置と比較して送信装置との間のネットワークの帯域負荷をより抑えることができるというさらなる効果を奏する。
また、上記中継装置は、複数の再生装置から上記要求を受信する中継装置であって、上記N個の再生対象コンテンツは品質が相異なるN階層の階層データであり、上記再生装置から上記要求を受信した場合に、より多くの階層から構成される第1のコンテンツデータの要求を他の再生装置から受信することが予定されるか否かを判定するととともに、予定されると判定されたときに当該第1のコンテンツデータを構成する階層データの階層数Mを推定する推定手段と、上記第2のコンテンツデータが上記記録部に記録されていないと上記判定手段が判定した場合であって上記階層数Mが推定された場合に、M階層の階層データからなるコンテンツデータを上記送信装置から取得する取得手段をさらに備えていることが望ましい。
上記の構成によれば、上記中継装置は、ある再生装置から階層数M’の第1のコンテンツデータの要求を受信した場合において、他の再生装置から階層数M(>M’)の第1のコンテンツデータの要求を受信する見込みがあるときは、記録部に第2のコンテンツデーが記録されていない限り、階層数Mのコンテンツデータを送信装置から取得する。したがって、後に階層数M’以下の第1のコンテンツデータの要求を受信する時には、コンテンツデータを送信装置から取得する必要はない。
したがって、上記推定手段を備えていないような中継装置と比較して送信装置との間のネットワークの帯域負荷をより抑えることができるというさらなる効果を奏する。
上記中継装置は、上記コンテンツデータはマルチパート形式のHTTPメッセージとして送受信されるようになっており、上記HTTPメッセージの各パートには、再生対象コンテンツと、該再生対象コンテンツの品質を示す情報とが別々に記録されている、ことが望ましい。
上記の構成によれば、各パートにおいて、上記情報は、上記再生対象コンテンツの一部として記録されているのではなく、上記再生対象コンテンツとは別に記録されている。
したがって、品質が相異なる複数の再生対象コンテンツが含まれているHTTPメッセージから特定の品質の再生対象コンテンツを抽出する場合に、各パートの上記情報を参照することにより再生対象コンテンツ自体を解析することなく容易に抽出することができるというさらなる効果を奏する。
なお、上記情報を再生対象コンテンツとは別に記録する方法としては、例えば、上記情報を上記再生対象コンテンツに関連付けられたヘッダとして記録する方法などが挙げられる。
また、上記中継装置では、上記HTTPメッセージのヘッダ部には、上記HTTPメッセージに含まれているすべての再生対象コンテンツの品質を示す情報が記録されていることが望ましい。
上記の構成によれば、上記中継装置は、特定の品質の再生対象コンテンツを中継するよう再生装置から要求された場合に、要求された品質の再生対象コンテンツを上記コンテンツデータから抽出可能であるかを、上記HTTPメッセージのヘッダ部の情報を参照することにより即座に把握することができるというさらなる効果を奏する。
また、上記中継装置は、上記コンテンツデータがチャンク形式のHTTPメッセージであることが望ましい。
上記の構成によれば、通信中のコンテンツデータの一部が欠損した場合であっても、上記再生装置が上記第1のコンテンツデータを安定して再生することができるというさらなる効果を奏する。
上記中継装置は、上記送信手段が、上記第1のコンテンツデータを上記HTTPメッセージとして送信するようになっており、上記生成手段が、上記HTTPメッセージの各パートに、上記第1のコンテンツデータを構成する1つのフラグメントであって上記再生装置において再生した場合に所定の時間だけ再生されるフラグメントを含めるようになっており、上記生成手段が、上記HTTPメッセージに含める上記フラグメントの個数を、該中継装置が上記要求を上記再生装置から受信した時刻に応じた個数とすることが望ましい。
上記の構成によれば、上記中継装置は、上記再生装置から上記要求を受信した時刻に応じて、再生装置に送信するHTTPメッセージに含める上記フラグメントの個数を変えることになる。
これにより、上記中継装置は、上記再生装置が上記フラグメントの部分を再生している時刻と、該フラグメントを上記送信装置が送信した時刻と、のタイムラグを減らすことができるというさらなる効果を奏する。
上記中継装置は、上記要求がたかだか1個の再生対象コンテンツを含む第1のコンテンツデータをシングルパート形式のHTTPメッセージとして送信すべき旨の要求である場合に、該要求を、該再生対象コンテンツを含むコンテンツデータをマルチパート形式のHTTPメッセージとして送信すべき旨の要求に変換する第1の変換手段と、上記第1の変換手段による変換後の要求を上記送信装置に送信することにより、上記マルチパート形式のHTTPメッセージとしてのコンテンツデータを取得する第2の取得手段と、を備え、上記第2の取得手段が取得したコンテンツデータを、シングルパート形式のHTTPメッセージである上記第1のコンテンツデータに変換する第2の変換手段と、を備えていることが望ましい。
上記の構成によれば、上記中継装置は、上記送信装置がマルチパート形式のHTTPメッセージの送信しかサポートしておらず、上記再生装置がシングルパート形式のHTTPメッセージを再生することを要求する場合であっても、上記再生装置に第1のコンテンツデータを再生させることができるというさらなる効果を奏する。
なお、本発明は、上記中継装置と、上記再生装置と、を含む通信システムとしても実現することができる。また、本発明は、上記中継装置と、上記再生装置と、上記送信装置と、を含む通信システムとしても実現することができる。さらに、本発明に係る再生装置を動作させるためのプログラムであって、コンピュータを上記の各手段として機能させることを特徴とする中継制御プログラム、および、その中継制御プログラムを記録した、コンピュータが読み取り可能な記録媒体も本発明の範疇に含まれる。
本発明に係る通信システムは、映像配信システムとして広く利用することができる。
100-1、100-2 クライアント装置(再生装置)
100’ クライアント装置
110、110’ リクエスト送信部
120 再生部
130 レスポンス受信部
200、200a、200b プロキシサーバ(中継装置)
210 リクエスト受信部
220、220a、220b 処理部(判定手段、生成手段、第1の変換手段、第2の変換手段、推定手段)
230 キャッシュ部(記録部)
240 リクエスト送信部(取得手段、第2の取得手段)
250 レスポンス受信部(取得手段、第2の取得手段)
260 レスポンス送信部(送信手段)
300、300’ コンテンツサーバ(送信装置)
310 リクエスト受信部
320、320’ 処理部
330 レスポンス送信部
340 メモリ部
350 符号化部
360 原映像受信部
100’ クライアント装置
110、110’ リクエスト送信部
120 再生部
130 レスポンス受信部
200、200a、200b プロキシサーバ(中継装置)
210 リクエスト受信部
220、220a、220b 処理部(判定手段、生成手段、第1の変換手段、第2の変換手段、推定手段)
230 キャッシュ部(記録部)
240 リクエスト送信部(取得手段、第2の取得手段)
250 レスポンス受信部(取得手段、第2の取得手段)
260 レスポンス送信部(送信手段)
300、300’ コンテンツサーバ(送信装置)
310 リクエスト受信部
320、320’ 処理部
330 レスポンス送信部
340 メモリ部
350 符号化部
360 原映像受信部
Claims (15)
- 再生装置からの要求に応じて、品質が相異なる最大N個(N:2以上の整数)の再生対象コンテンツからなるコンテンツデータを送信装置から上記再生装置に中継するとともに該コンテンツデータを記録部に記録する中継装置において、
上記再生装置から上記要求を受信した場合に、要求された第1のコンテンツデータを構成する再生対象コンテンツの何れかを含む第2のコンテンツデータが上記記録部に記録されているか否かを判定する判定手段と、
上記第1のコンテンツデータを上記再生装置に送信する送信手段と、
上記第2のコンテンツデータが上記記録部に記録されていると上記判定手段が判定した場合に、上記第1のコンテンツデータを、上記記録部に記録されている上記第2のコンテンツデータを用いて生成する生成手段と、を備えていることを特徴とする中継装置。 - 請求項1に記載の中継装置であって、
上記判定手段は、上記第2のコンテンツデータが上記記録部に記録されていると判定した場合に、さらに、上記第2のコンテンツデータが、上記第1のコンテンツデータを構成する全再生対象コンテンツと上記第1のコンテンツデータを構成しない再生対象コンテンツとを共に含んでいるかを判定するようになっており、
上記判定手段が「共に含んでいる」と判定した場合には、上記生成手段は、生成すべき上記第1のコンテンツデータを上記第2のコンテンツデータから抽出することを特徴とする中継装置。 - 請求項1または2に記載の中継装置であって、
上記第2のコンテンツデータが上記記録部に記録されていると上記判定手段が判定した場合に、上記第1のコンテンツデータを構成する全再生対象コンテンツのうち、上記第2のコンテンツデータに含まれていない再生対象コンテンツを含む第3のコンテンツデータを上記送信装置から取得する取得手段をさらに備え、
上記生成手段は、上記第2のコンテンツデータと上記第3のコンテンツデータとを用いて上記第1のコンテンツデータを生成することを特徴とする中継装置。 - 複数の再生装置から上記要求を受信する請求項1または2に記載の中継装置であって、
上記N個の再生対象コンテンツは品質が相異なるN階層の階層データであり、
各再生装置から次に受信することが予定される要求のうちの、最も多くの階層からなる第1のコンテンツデータを対象とする要求について、当該第1のコンテンツデータを構成する階層データの階層数Mを推定する推定手段をさらに備え、
上記第2のコンテンツデータが上記記録部に記録されていないと上記判定手段が判定し
た場合に、M階層の階層データからなるコンテンツデータを上記送信装置から取得する取得手段をさらに備えていることを特徴とする中継装置。 - 複数の再生装置から上記要求を受信する請求項1または2に記載の中継装置であって、
上記N個の再生対象コンテンツは品質が相異なるN階層の階層データであり、
上記再生装置から上記要求を受信した場合に、より多くの階層から構成される第1のコンテンツデータの要求を他の再生装置から受信することが予定されるか否かを判定するととともに、予定されると判定されたときに当該第1のコンテンツデータを構成する階層データの階層数Mを推定する推定手段と、
上記第2のコンテンツデータが上記記録部に記録されていないと上記判定手段が判定し
た場合であって上記階層数Mが推定された場合に、M階層の階層データからなるコンテンツデータを上記送信装置から取得する取得手段をさらに備えていることを特徴とする中継装置。 - 請求項1から5のいずれか1項に記載の中継装置であって、
上記コンテンツデータはマルチパート形式のHTTPメッセージとして送受信されるようになっており、
上記HTTPメッセージの各パートには、再生対象コンテンツと、該再生対象コンテンツの品質を示す情報とが別々に記録されている、ことを特徴とする中継装置。 - 上記HTTPメッセージのヘッダ部には、上記HTTPメッセージに含まれているすべての再生対象コンテンツの品質を示す情報が記録されていることを特徴とする請求項6に記載の中継装置。
- 上記コンテンツデータはチャンク形式のHTTPメッセージであることを特徴とする請求項1から7のいずれか1項に記載の中継装置。
- 請求項6または7に記載の中継装置であって、
上記送信手段は、上記第1のコンテンツデータを上記HTTPメッセージとして送信するようになっており、
上記生成手段は、上記HTTPメッセージの各パートに、上記第1のコンテンツデータを構成する1つのフラグメントであって上記再生装置において再生した場合に所定の時間だけ再生されるフラグメントを含めるようになっており、
上記生成手段は、上記HTTPメッセージに含める上記フラグメントの個数を、該中継装置が上記要求を上記再生装置から受信した時刻に応じた個数とすることを特徴とする中継装置。 - 請求項1から9のいずれか1項に記載の中継装置であって、
上記要求がたかだか1個の再生対象コンテンツを含む第1のコンテンツデータをシングルパート形式のHTTPメッセージとして送信すべき旨の要求である場合に、該要求を、該再生対象コンテンツを含むコンテンツデータをマルチパート形式のHTTPメッセージとして送信すべき旨の要求に変換する第1の変換手段と、
上記第1の変換手段による変換後の要求を上記送信装置に送信することにより、上記マルチパート形式のHTTPメッセージとしてのコンテンツデータを取得する第2の取得手段と、を備え、
上記第2の取得手段が取得したコンテンツデータを、シングルパート形式のHTTPメッセージである上記第1のコンテンツデータに変換する第2の変換手段と、を備えていることを特徴とする中継装置。 - 再生装置からの要求に応じて、品質が相異なる最大N個(N:2以上の整数)の再生対象コンテンツからなるコンテンツデータを送信装置から上記再生装置に中継するとともに該コンテンツデータを記録部に記録する中継装置の中継方法において、
上記再生装置から上記要求を受信した場合に、要求された第1のコンテンツデータを構成する再生対象コンテンツの何れかを含む第2のコンテンツデータが上記記録部に記録されているか否かを判定する判定工程と、
上記第2のコンテンツデータが上記記録部に記録されていると上記判定工程にて判定された場合に、上記第1のコンテンツデータを、上記記録部に記録されている上記第2のコンテンツデータを用いて生成する生成工程と、
上記生成工程にて生成された上記第1のコンテンツデータを上記再生装置に送信する送信工程と、を含んでいることを特徴とする中継方法。 - 請求項1から10の何れか1項に記載の中継装置と、上記再生装置と、を含む通信システム。
- 請求項1から10の何れか1項に記載の中継装置と、上記再生装置と、上記送信装置と、を含む通信システム。
- 請求項1から10の何れか1項に記載の中継装置を動作させるプログラムであって、コンピュータを上記各手段として機能させるための中継制御プログラム。
- 請求項14に記載の中継制御プログラムが記録されているコンピュータ読み取り可能な記録媒体。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010-163365 | 2010-07-20 | ||
| JP2010163365 | 2010-07-20 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2012011466A1 true WO2012011466A1 (ja) | 2012-01-26 |
Family
ID=45496886
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2011/066353 Ceased WO2012011466A1 (ja) | 2010-07-20 | 2011-07-19 | 中継装置、中継方法、通信システム、中継制御プログラム、および記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2012011466A1 (ja) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014168180A (ja) * | 2013-02-28 | 2014-09-11 | Brother Ind Ltd | 通信システム、情報処理装置、及びプログラム |
| JP2014187510A (ja) * | 2013-03-22 | 2014-10-02 | Fujitsu Ltd | ストリーミング配信システム、ストリーミング配信方法、ストリーミング配信プログラムおよびストリーミング配信サーバ |
| JP2015050599A (ja) * | 2013-08-30 | 2015-03-16 | ソフトバンクモバイル株式会社 | 動画配信システム、動画配信装置、端末装置、及びプログラム |
| JP2015220595A (ja) * | 2014-05-16 | 2015-12-07 | 株式会社ユニモト | 全周動画配信システム、全周動画配信方法、通信端末装置およびそれらの制御方法と制御プログラム |
| JP2017059953A (ja) * | 2015-09-15 | 2017-03-23 | キヤノン株式会社 | 画像配信システム及びサーバ |
| US9741091B2 (en) | 2014-05-16 | 2017-08-22 | Unimoto Incorporated | All-around moving image distribution system, all-around moving image distribution method, image processing apparatus, communication terminal apparatus, and control methods and control programs of image processing apparatus and communication terminal apparatus |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002199365A (ja) * | 2000-12-26 | 2002-07-12 | Ricoh Co Ltd | 映像配信システムおよび映像配信方法 |
| JP2004282390A (ja) * | 2003-03-14 | 2004-10-07 | Ntt Docomo Inc | 記憶装置及びフレーム廃棄方法 |
| JP2008543212A (ja) * | 2005-05-31 | 2008-11-27 | メントアウェーブ・テクノロジーズ・リミテッド | ネットワークを介して双方向型の映画を表示する方法とシステム |
-
2011
- 2011-07-19 WO PCT/JP2011/066353 patent/WO2012011466A1/ja not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002199365A (ja) * | 2000-12-26 | 2002-07-12 | Ricoh Co Ltd | 映像配信システムおよび映像配信方法 |
| JP2004282390A (ja) * | 2003-03-14 | 2004-10-07 | Ntt Docomo Inc | 記憶装置及びフレーム廃棄方法 |
| JP2008543212A (ja) * | 2005-05-31 | 2008-11-27 | メントアウェーブ・テクノロジーズ・リミテッド | ネットワークを介して双方向型の映画を表示する方法とシステム |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014168180A (ja) * | 2013-02-28 | 2014-09-11 | Brother Ind Ltd | 通信システム、情報処理装置、及びプログラム |
| JP2014187510A (ja) * | 2013-03-22 | 2014-10-02 | Fujitsu Ltd | ストリーミング配信システム、ストリーミング配信方法、ストリーミング配信プログラムおよびストリーミング配信サーバ |
| US9654530B2 (en) | 2013-03-22 | 2017-05-16 | Fujitsu Limited | Streaming distribution system, streaming distribution method |
| JP2015050599A (ja) * | 2013-08-30 | 2015-03-16 | ソフトバンクモバイル株式会社 | 動画配信システム、動画配信装置、端末装置、及びプログラム |
| JP2015220595A (ja) * | 2014-05-16 | 2015-12-07 | 株式会社ユニモト | 全周動画配信システム、全周動画配信方法、通信端末装置およびそれらの制御方法と制御プログラム |
| US9741091B2 (en) | 2014-05-16 | 2017-08-22 | Unimoto Incorporated | All-around moving image distribution system, all-around moving image distribution method, image processing apparatus, communication terminal apparatus, and control methods and control programs of image processing apparatus and communication terminal apparatus |
| JP2017059953A (ja) * | 2015-09-15 | 2017-03-23 | キヤノン株式会社 | 画像配信システム及びサーバ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10728591B2 (en) | Method of configuring and transmitting an MMT transport packet | |
| KR102202143B1 (ko) | 유연한 mmt 애셋 송수신 방법 및 그 장치 | |
| TWI846795B (zh) | 用於經串流媒體資料之多個解碼器介面 | |
| US9351020B2 (en) | On the fly transcoding of video on demand content for adaptive streaming | |
| JP2018186524A (ja) | コンテンツ送信装置およびコンテンツ再生装置 | |
| US9043849B2 (en) | Method for linking MMT media and DASH media | |
| JP5964972B2 (ja) | 複数のソースからのマルチメディアデータのストリーミング | |
| CN110099288B (zh) | 发送媒体数据的方法及装置 | |
| US20060092938A1 (en) | System for broadcasting multimedia content | |
| JP2015136060A (ja) | 通信装置、通信データ生成方法、および通信データ処理方法 | |
| KR102247976B1 (ko) | 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법 | |
| CN102550038A (zh) | 播放媒体文件的方法、终端、服务器和系统 | |
| WO2012011466A1 (ja) | 中継装置、中継方法、通信システム、中継制御プログラム、および記録媒体 | |
| KR20130138638A (ko) | 비트 에러율을 이용한 효과적인 멀티미디어 전송 방법 | |
| KR20130085987A (ko) | 이종망 네트워크에서 미디어 프래그먼트 유닛으로 나누어진 액세스 유닛을 가지는 미디어 데이터를 전송하는 방법 | |
| WO2004081799A1 (ja) | 受信装置および情報閲覧方法 | |
| KR20130119885A (ko) | 네트워크 적응적인 계층적 비디오 전송을 위한 mmt 패킷의 전송 방법 및 장치 | |
| JP2015136059A (ja) | 通信装置、通信データ生成方法、および通信データ処理方法 | |
| KR102098723B1 (ko) | Mmt 전송 패킷의 설정 방법 및 전송 방법 | |
| KR101829064B1 (ko) | Dash 규격의 미디어 데이터와 mmt 전송 시스템과의 연동 방법 및 그 장치 | |
| KR102176404B1 (ko) | 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법 | |
| Clayman et al. | In-network scalable video adaption using big packet protocol | |
| JP2004140552A (ja) | マルチキャストシステム,ストリーミングサーバ,クライアント装置,プログラム,およびストリーミングサーバの送信方法 | |
| Onifade et al. | Guaranteed QoS for Selective Video Retransmission |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11809636 Country of ref document: EP Kind code of ref document: A1 |
|
| DPE1 | Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101) | ||
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 11809636 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: JP |