WO2016002497A1 - 情報処理装置および方法、配信システム、並びにプログラム - Google Patents

情報処理装置および方法、配信システム、並びにプログラム Download PDF

Info

Publication number
WO2016002497A1
WO2016002497A1 PCT/JP2015/067235 JP2015067235W WO2016002497A1 WO 2016002497 A1 WO2016002497 A1 WO 2016002497A1 JP 2015067235 W JP2015067235 W JP 2015067235W WO 2016002497 A1 WO2016002497 A1 WO 2016002497A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
client
segment
partial image
server
Prior art date
Application number
PCT/JP2015/067235
Other languages
English (en)
French (fr)
Inventor
五十嵐 卓也
Original Assignee
ソニー株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Publication of WO2016002497A1 publication Critical patent/WO2016002497A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Definitions

  • the present disclosure relates to an information processing device and method, a distribution system, and a program, and particularly relates to an information processing device and method, a distribution system, and a program that can improve operability in moving image playback.
  • MPEG-DASH Moving Picture Experts Group Dynamic Dynamic Adaptive Streaming HTTP
  • HTTP Hyper Text Transfer Protocol
  • MPEG-DASH multiple encoded data in which the same content is expressed at different bit rates are stored in the content server, and the client selects one of the multiple encoded data according to the network bandwidth.
  • ABS Adaptive Bitrate Streaming
  • a partial image of a part selected by the terminal that receives the image data in the entire image is distributed, the terminal performance (for example, the processing capacity of the CPU, the size of the display, etc.), the transmission path, and the load on the server It was considered to control the size of the partial image to be distributed according to the situation.
  • MPEG-DASH Dynamic-Adaptive-Streaming-over-HTTP
  • URL http://mpeg.chiariglione.org/standards/mpeg-dash/media-presentation-description-and-segment-formats/text-isoiec-23009-12012-dam -1)
  • the present disclosure has been made in view of such a situation, and as much as possible at the start of reproduction so that encoded data converted at a plurality of bit rates or a plurality of types can be distributed for the same scene. It enables reproduction from an image of high-quality encoded data.
  • An information processing apparatus is an information processing apparatus that realizes the function of the server in a distribution system that distributes content data from a server to a client using MPEG-DASH.
  • a transmission unit is included that transmits segment data including a plurality of types of encoded data to the client for the same partial image.
  • a communication control unit for controlling the operation of the transmission unit can be further included, and the communication control unit includes the partial image transmitted by the transmission unit at the start of reproduction of the content data. Based on the reproduction state in the client, the segment data that is the same partial image as the transmitted partial image and is composed of encoded data of different types is transmitted to the client by controlling the transmission unit. You can make it.
  • a receiving unit that receives data from the client can be further included, and the communication control unit controls the receiving unit to perform a plurality of operations on the same partial image from the client.
  • the content is controlled by controlling the transmitting unit for the client capable of receiving the receivable information.
  • segment data composed of a plurality of types of encoded data can be transmitted to the client for the same partial image.
  • An information processing method is an information processing method of an information processing apparatus that realizes the function of the server of a distribution system that distributes content data from a server to a client using MPEG-DASH.
  • a program provides a computer that controls an information processing apparatus that realizes the function of the server of a distribution system that distributes content data from a server to a client using MPEG-DASH.
  • a process including a step of transmitting segment data including a plurality of types of encoded data to the client is executed on the same partial image.
  • An information processing apparatus is an information processing apparatus that realizes the function of the client in a distribution system that distributes content data from a server to a client using MPEG-DASH.
  • a receiving unit for receiving segment data composed of a plurality of types of encoded data from the server, and a buffer for segment data consisting of the encoded data of the partial image received by the receiving unit A buffering unit for ringing, and a reproduction unit for reproducing segment data composed of encoded data of the partial image buffered in the buffering unit, wherein the buffering unit receives the partial image received by the receiving unit
  • the segment data consisting of the encoded data of If it is the same partial image as the segment data consisting of the encoded data of the image, the segment data consisting of the encoded data of the buffered partial image is discarded, and the encoded data of the partial image received by the receiving unit Buffer segment data consisting of
  • segment data composed of the encoded data of the partial image received by the receiving unit is the same partial image as the segment data composed of the encoded data of the buffered partial image
  • the segment data composed of the encoded data of the partial image being played can be reproduced.
  • a transmission unit that transmits data to the server and a communication control unit that controls the operation of the transmission unit may be further included, and the communication control unit includes a reproduction state of the segment data by the reproduction unit Can be transmitted to the server by controlling the transmitter.
  • the communication control unit can receive the data indicating that the transmission unit can receive segment data composed of a plurality of types of encoded data for the same partial image from the client. Information can be transmitted to the server.
  • An information processing method is an information processing method of an information processing apparatus that realizes the function of the client of a distribution system that distributes content data from a server to a client using MPEG-DASH.
  • the segment data consisting of a plurality of types of encoded data is received from the server, the segment data consisting of the encoded data of the received partial image is buffered, Including a step of reproducing segment data consisting of encoded data of a buffered partial image, wherein the segment data consisting of encoded data of a received partial image is segment data consisting of encoded data of a buffered partial image Buffered if it is the same partial image as Discard the segment data consisting of the partial image coded data, buffers the segment data consisting of the encoded data of the received partial image.
  • a program provides a computer that controls an information processing apparatus that realizes the function of the client of a distribution system that distributes content data from a server to a client using MPEG-DASH.
  • segment data consisting of multiple types of encoded data is received from the server for the same partial image, and segment data consisting of encoded data of the received partial image is buffered and buffered.
  • the segment data comprising the encoded data of the partial image received is the same as the segment data comprising the encoded data of the buffered partial image. Buffered if it is a partial image of Discard the segment data consisting of the partial image coded data, the segment data consisting of the encoded data of the received partial image to execute the process of buffering.
  • an information processing apparatus that realizes the function of the client of a distribution system that distributes content data from a server to a client using MPEG-DASH, and when the reproduction of the content data is started ,
  • the segment data composed of a plurality of types of encoded data is received from the server for the same partial image, the segment data composed of the encoded data of the received partial image is buffered, and the buffered portion
  • segment data consisting of encoded image data is reproduced, and the segment data consisting of encoded data of the received partial image is the same partial image as the segment data consisting of encoded data of the buffered partial image , Consisting of coded data of buffered partial images Segment data is discarded, the segment data is buffered consisting encoded data of the received partial image.
  • a distribution system including the server that distributes content data from a server to a client using MPEG-DASH and the first and second information processing apparatuses that realize the function of the client. Then, when the reproduction of the content data is started by the first information processing apparatus, segment data composed of a plurality of types of encoded data is transmitted to the second information processing apparatus for the same partial image. When the second information processing apparatus starts reproduction of the content data, segment data composed of a plurality of types of encoded data is received from the first information processing apparatus for the same partial image. The segment data composed of the encoded data of the received partial image is buffered and buffered in the buffering unit.
  • FIG. 10 is a diagram for explaining a sequence of Multiple Representations Transfer at startup. It is a timing chart explaining the sequence of Low delay Transfer by Sub-Segment. It is a figure explaining the sequence of Low-delay-Transfer-by-sub-segment. It is a timing chart explaining the sequence performed when network congestion generate
  • FIG. 18 is a block diagram illustrating a configuration example of an embodiment of a computer to which the present technology is applied.
  • the streaming data control software selects an MPD (Media Presentation Description) file of the desired content and acquires it from the Web server.
  • MPD Media Presentation Description
  • MPD is metadata for managing content such as moving images and audio to be distributed.
  • the streaming data control software of the video playback terminal analyzes the MPD and generates data (DASH segment) that matches the quality of the communication line and the performance of the video playback terminal of the desired content.
  • the client software for HTTP access acquires the DASH segment from the Web server using HTTP according to the control.
  • the moving image reproduction software reproduces the content acquired in this way.
  • MPD has a configuration as shown in FIG. 2, for example.
  • the client selects an optimum one from the representation attributes included in the period of the MPD (Media Presentation in FIG. 2).
  • the client reads the first segment (Segment) of the selected representation (Representation), acquires the initialization segment (Initialization Segment), and processes it. Subsequently, the client acquires and reproduces the subsequent segment (Segment).
  • a period (Period), a representation (Representation), and a segment (Segment) in MPD is as shown in FIG. That is, one media content can be managed for each period (Period) that is a data unit in the time direction, and each period (Period) should be managed for each segment (Segment) that is a data unit in the time direction. Can do.
  • a plurality of representations (Representations) having different attributes such as bit rate can be configured for each period (Period), a plurality of representations (Representations) having different attributes such as bit rate can be configured.
  • this MPD file (also referred to as MPD file) has a hierarchical structure as shown in FIG. 4 below the period. Further, when the MPD structures are arranged on the time axis, an example shown in FIG. 5 is obtained. As is clear from the example of FIG. 5, there are a plurality of representations (Representations) for the same segment (Segment). The client can acquire and reproduce appropriate stream data according to the communication environment, its decoding capability, and the like by adaptively selecting one of these.
  • FIG. 6 is a diagram illustrating a distribution system, which is an aspect of a system to which the present technology is applied.
  • a distribution system 100 shown in FIG. 6 is a system that can adaptively distribute data of a partial image that is a part of an entire image.
  • the distribution system 100 includes a distribution data generation device 101, a distribution server 102, and a terminal device 103.
  • the distribution data generation apparatus 101 generates a content file (content file) such as an image or a sound distributed by the distribution server 102 and its MPD file, and supplies the MPD file to the distribution server 102.
  • the distribution server 102 publishes the content file and the MPD file supplied from the distribution data generation apparatus 101 to the network 104, and performs adaptive distribution of partial images.
  • the terminal device 103 accesses the distribution server 102 via the network 104 and acquires an MPD file of desired content published by the distribution server 102.
  • the terminal device 103 accesses the distribution server 102 via the network 104 in accordance with the MPD file, adaptively selects an appropriate content file corresponding to the MPD file, and acquires it using the HTTP protocol.
  • the terminal device 103 reproduces the acquired content file.
  • segment data by HTTP is a process as shown in A of FIG.
  • buffering is performed in units of three segment data (Seg. Data) at the start of decoding.
  • a request consisting of a Get command (Req at the top of the client 202 in the third row in FIG. 7A) is transmitted to the server 201. .
  • the server 201 transmits the MPD to the client 202 as a response (Resp. At the top of the third-stage client 202 in FIG. 7A).
  • the client 202 sequentially requests segment data (Seg. Data) from the server 201 based on the MPD information (second and subsequent Req. Of the third-stage client 202 in FIG. 7A).
  • the server 201 transmits segment data (Seg. Data) to the client 202 (second and subsequent Resp. Of the third-stage server 201 in FIG. 7A).
  • segment data Seg. Data
  • the server 201 transmits segment data (Seg. Data) to the client 202 (second and subsequent Resp. Of the third-stage server 201 in FIG. 7A).
  • a delay time occurs from the timing of PlayStart to the timing when playback is started by the client 202 (DecStart).
  • FIG. 7A shows that the server 201 and the client 202 are connected at the top level, and in the middle level, the playback is actually started from the timing when playback is requested (Play Start).
  • a delay time (Delay to Rendering) until the start timing (DecStart) is shown.
  • segment data Seg. Data
  • FIG. 7A the upper side of the pipe-shaped communication line indicates the operation timing on the client 202 side, and the lower side indicates the operation timing on the server 201 side.
  • a request consisting of a Get command (Command Send at the top of the third stage client 202 in FIG. 7B) is transmitted to the server 201. .
  • the server 201 sends the segment data (Seg. Data) to the client 202 together with the MPD as a response (Data (MPD) at the head of the third-stage client 202 in FIG. 7B).
  • the data is sequentially transmitted (second and subsequent Seg.Data of the third-stage server 201 in B of FIG. 7).
  • the client 202 requests the segment data (Seg.Data) from the server 201 and the server 201 transmits the segment data (Seg.Data) to the client 202, the second row of FIG. As shown in FIG. 4, although a delay time (Delay to Rendering) occurs from the timing of PlayStart to the timing when playback is started by the client 202 (DecStart), it is shorter than in the case of HTTP.
  • a delay time Delay to Rendering
  • Pipelining which is a bandwidth adaptation logic, is supported also in HTTP, it is possible to shorten the delay time compared to the processing in FIG. 7A described above.
  • Pipelining means that the client 202 determines the state of the bandwidth, and can make a plurality of requests to the server 201 at a time according to the bandwidth. This is a function that can receive data in response to a request.
  • the client 202 requests the server 201 for three segment data at the same time. From 201, three segment data are received collectively.
  • next segment data is requested before the response to the request is returned, the bandwidth of the ongoing transaction is monitored, and a different representation (Representation) is selected according to the situation. Therefore, it cannot be reflected in the next segment data request. For this reason, the transaction result in progress can be reflected only in the request for the segment after three.
  • Seg.Data (rep1) and Seg.Data (rep3) in the lowermost part of FIG. 8A indicate segment data with different representations, and rep3 is a segment with a higher image quality than rep1. Indicates data. That is, in the lowermost part of FIG. 8A, in response to the first request, after the low-quality three segment data (Seg.Data (rep1)) are transmitted, the high-quality segment data (Seg.Data (rep3)) is transmitted.
  • the server 201 can switch the segment data representation by determining the bandwidth state. For this reason, as shown in FIG. 8B, since the server 201 makes a determination according to the bandwidth, even at the timing immediately after the first segment data is sent, a different representation depends on the bandwidth status.
  • the segment data can be transmitted. That is, at the bottom of FIG. 8B, immediately after the low-quality segment data (Seg.Data (rep1)) is transmitted at the beginning, the high-quality segment data (Seg.Data (rep3)) is transmitted. It has been shown that.
  • FIG. 9 shows an example of the base framing protocol of the web socket and the operation code (operation code, opcode) described in the header part of the subframe.
  • FIN indicating whether this subframe is the end of data
  • MASK indicating whether the data is masked
  • Payload indicating the length of the application data len etc.
  • the operation code when the operation code is 0, it indicates a subframe (Continuation Frame) used to continue the connection.
  • the operation code is 1, the subframe for text data (Text Frame) It is shown that.
  • the operation code when the operation code is 2, it indicates a binary data subframe (Binary ⁇ ⁇ ⁇ ⁇ Frame), and when the operation code is 8, it is a subframe (Connection Close) Frame that terminates the connection. Is shown.
  • the operation code when the operation code is 9, it indicates a subframe (Ping Frame) used for confirming whether the connection can be maintained.
  • the operation code when the operation code is 10, it indicates a subframe (Pong Frame) used for a response to Ping Frame.
  • control data is composed of JSON Data described by Jason (JSON: JavaScript (registered trademark) Object Notation), which is one of lightweight data description languages.
  • segment Data is composed of data described according to the ISO / IEC 14496-12 (MPEG-4) standard.
  • control data and the segment data are not mixed in the payload portion of the common subframe, and each is arranged in the payload portion of the individual subframe.
  • control data is delayed and transmitted.
  • segment data has a large amount of data
  • transmission may be delayed.
  • control data is recognized only after all the mixed data has been read. I can't. For this reason, it is assumed that a delay time occurs until the control data is recognized.
  • control data and segment data are arranged in the payload part of individual subframes, control data can be recognized because relatively small control data can be transmitted before segment data is transmitted. Thus, transmission can be performed with a reduced delay time.
  • the received segment data can be added (Append) to the MSE source buffer without parsing with JavaScript (registered trademark) using the HTML5 web socket API.
  • FIG. 10 shows the syntax of the control data described by Jason.
  • the protocol ID is dash and the protocol version is 0.2.
  • the time stamp 1403627982268 in the example of FIG. 10 can correct a transmission delay occurring in the application layer and below.
  • control data can be transmitted together in one subframe.
  • the receiving side can easily perform batch processing. That is, in the example of FIG. 10, operation codes of capability, openMedia, and playStream are collectively described as control data.
  • FIG. 11 shows a list of operation codes used for subframes for transmitting control data.
  • OpenMedia is an operation code for specifying the MPD URL so that the media segment can be streamed to the server, and is sent from the client to the server.
  • openMedia is described as shown in FIG. 12, and “opcode”: “openMedia” on the first line is an operation code for specifying a URL of an MPD so that a media segment can be streamed to a server. It represents that.
  • the MPD is specified by the URL (“http: //cdn.example/movies/134532.mpd” in the example of FIG. 12). Then, the server that received openMedia opens the specified MPD and sends mediaInfo back to the client.
  • MediaInfo is an operation code that is sent immediately after receiving openMedia or when media information is updated, and is sent from the server to the client.
  • mediaInfo is described as shown in FIG. 13, and “opcode”: “mediaInfo” on the first line is an operation code transmitted immediately after receiving openMedia or when media information is updated. It represents something.
  • the target media is designated by mediaDescriptor (152736 in the example of FIG. 13).
  • the network operation state (activity) (4 in the example of FIG. 13) is specified as defined in HTML5 Video by networkState.
  • the ready state of the target medium (4 in the example of FIG. 13) is designated by readyState.
  • the MPD is specified by the URL (“http: //cdn.example/movies/134532.mpd” in the example of FIG. 13).
  • CloseMedia is an operation code for releasing resources secured by the server with openMedia, and is sent from the client to the server.
  • closeMedia is described as shown in FIG. 14, and “opcode”: “closeMedia” represents an operation code for releasing a resource secured by the server with openMedia.
  • the media to be closed is specified by mediaDescriptor (152736 in the example of FIG. 14).
  • PlayerStream is an operation code for starting a stream and specifying an open medium, and is transmitted from the client to the server.
  • playStream is described as shown in FIG.
  • opcode “playStream” on the first line represents an operation code for starting a stream and designating an opened medium.
  • the segment of the segment number specified by segmentNumber of the medium specified by mediaDescriptor (152736 in the example of FIG. 15) in the stream specified by streamDescriptor (4323 in the example of FIG. 15) (see FIG. 15).
  • the stream for the number of segments (1000 in FIG. 15) designated by numSegment is started from 155).
  • VOD Video On Demand
  • the stream starts from the first segment of the media, and in the case of Live, the stream starts from the current latest segment.
  • StreamInfo is an operation code for notifying the state of the stream and the attribute of the segment data to be transmitted next, and is transmitted from the server to the client.
  • streamInfo is described as shown in FIG. Further, streamInfo indicates attribute information of segment data that is transmitted periodically and transmitted after the control data.
  • opcode “StreamInfo” on the first line represents an operation code for notifying the state of the stream and the attribute of the segment data to be transmitted next.
  • the target stream is specified by streamDescriptor (4323 in the example of FIG. 16).
  • the target medium is designated by mediaDescriptor (1527364235312 in the example of FIG. 13).
  • the network operation state (activity) is specified as defined in HTML5 Video by networkState.
  • the ready state (4 in the example of FIG. 16) of the target medium is described by readyState.
  • Multi MultipleRepresentation specifies whether there is a possibility that multiple representations may be sent for the same segment data.
  • “true” is specified, which indicates that there is a possibility that a plurality of representations may be transmitted for the same segment data. In that case, the client waits for reception of the next StreamInfo and then decides whether to use or discard the current Segment data.
  • “false” is specified, it is designated that a plurality of representations are not transmitted for the same segment data.
  • segmentSkipped it is specified whether or not there is a possibility of performing segment skip, which causes the delivery of a segment whose playback has been delayed with respect to real time to be performed during Live distribution.
  • segment skip indicates that there is no possibility of segment skipping.
  • true indicates that there is no possibility of segment skipping.
  • the minimum buffering time is specified by minBufferTime, and in FIG. 16, “4.00” specifies 4 seconds.
  • minNetworkBufferTime an incentive value that specifies how much data should be buffered by the client before starting decoding is designated.
  • “5.00” designates 5 seconds.
  • the server uses MinNetworkBufferDuration to specify as an encouragement value that the client should start decoding after buffering, and judging from the network status, etc., the client buffer is depleted due to bandwidth fluctuations.
  • StreamInfo is transmitted (signaling) at the start of the stream so that playback does not stop.
  • Segment data is specified by segment, and among these, the time of segment data is specified by presentationTime, and in FIG. 16, “331533” is specified in milliseconds.
  • reproduction start position is designated by “periodID”. In FIG. 16, “1” is designated, and reproduction from the leading period is designated.
  • segment data is specified by “adaptationSetID”, and “video” is specified in FIG.
  • type of representation is specified by representationID, and “rep4” is specified in the example of FIG.
  • segment data number is specified by "segmentNumber”, and "1324" is specified in Fig. 16. If there is no information specifying these segments, the target segment is the head of the initialization. It is considered as a segment.
  • SAPType specifies the type of the start position SAP (Stream Access Point) where the separated presentation such as segment or subsegment changes.
  • SAP type is defined with description types 1 to 6 such that the first picture of the Segment SubSegment is the first picture of the Closed GOP or Open GOP. In the example of FIG. 16, 1 is specified. Yes.
  • SubsegmentNumber designates a number for identifying a subsegment constituting one segment data. In FIG. 16, “0” is designated. As for the number identifying the sub-segment, when three sub-segments constitute one segment data, as shown in the example of FIG. 16, if the number is the first sub-segment, “0” In the second sub-segment, “1” may be set, and in the third sub-segment, “2” may be set.
  • the server signals (transmits) SAPType and SubSegmentNumber.
  • the server can stop the stream in the middle of SubSegment. Thereby, without transmitting unnecessary Segment-Data, the stream can be stopped immediately by StopStream, and ChangeMedia can be realized with low delay. Furthermore, ChangeMedia can be switched at a higher speed by streaming the switched Media from the SubSegment.
  • StopStream is an operation code for stopping the stream and is sent from the client to the server.
  • stopStream is described as shown in FIG. 17, and the stop of the stream designated by the streamDescriptor (4323 in the example of FIG. 16) is instructed as a target stream.
  • opcode “stopStream” on the first line indicates an operation code for instructing to stop the stream
  • params “ ⁇ “streamDescriptor”: “on the second to fourth lines. 4323 “ ⁇ represents a parameter for designating a stream to be stopped.
  • ChangeMedia is to change the media to be streamed, specify the opened Media, and switch without stopping the stream. changeMedia is sent from the client to the server.
  • changeMedia is described as shown in FIG.
  • “Opcode”: “changeMedia” on the first line indicates an operation code for designating a stream medium to be played after the change.
  • PlayerInfo is an operation code for notifying the playback status of the player who is playing the stream, and is sent from the client to the server.
  • playerInfo is described as shown in FIG. 19, and is notified if there is a change in the playback status of the player.
  • “Opcode”: “playerInfo” on the first line indicates an operation code for notifying the playback status of the player.
  • “Params” on lines 2 to 8: ⁇ “streamDescriptor”: “4323”, “networkState”: “4”, “readyState”: “4” “currentPresentationTime”: “478777”, “bufferedTime”: “4000” ⁇ Represents a parameter for identifying a stream, a parameter representing a network status, a parameter representing a reading status, a parameter representing the current playback time in milliseconds, and a parameter representing the buffered time in milliseconds.
  • the server can detect that the client cannot be played back in real time using the currentPresentationTime included in the playerInfo. As a result, as will be described later with reference to FIG. 33, the server can skip unnecessary segments that are not reproduced and continue to transfer the latest live segment.
  • Capability is an operation code for notifying a client's capability, such as a codec, and is transmitted from the client to the server.
  • “opcode”: “capability” on the first line represents an operation code for notifying a client capability such as a codec.
  • SegmentSkip specifies whether or not the segment skip can be supported. For example, “false” is specified in FIG. 20 to indicate that the segment skip cannot be supported. When “true” is set, it is specified that segment skipping can be supported.
  • Decoding specifies the type of decoding that can be supported, mimeType specifies the mime type, and in FIG. 20, “video / mp4” is specified, which indicates that mp4 video can be decoded. Further, it is specified by codec that [“avc1.640828”] is possible as the type of codec. At this time, the maximum width, the maximum height, and the maximum bandwidth of the image that can be processed are designated by maxWidth, maxHieght, and maxBandwidth. In FIG. 20, “1920”, “1080”, and “101024” are set, respectively. It is specified that an image with a 1920 ⁇ 1080 pixel bandwidth of 101024 can be processed.
  • segmentAlignment Specifies whether or not the segments of the representation are aligned.
  • “false” is specified, and it is specified that the segments of each representation are aligned. If true, it is specified that there are no segments for each representation.
  • SAPType Stream Access Point
  • SAPType the type of the segment start position SAP (Stream Access Point) is specified by SAPType, and in the case of FIG. 20, it is specified that the SAP type is either 1 or 2.
  • audiomp4 is designated as a mime type that can be further dealt with, and it is designated that audio mp4 can be decoded.
  • [“mp4a.40”] is designated as the codec type, and segmentAlignment! Designates whether or not the segments of the representation are aligned. In FIG. 20, it is set to false. It is specified that the segment is complete.
  • Preference is an operation code for notifying client preferences (settings to be given priority) such as AdaptationSetID, and is transmitted from the client to the server.
  • “opcode”: “preference” on the first line represents an operation code for notifying the client's preference (setting that should be given priority).
  • the target medium is designated by mediaDescriptor (152736 in the example of FIG. 21) by mediaDescriptor.
  • segmentSkip it is specified whether or not the target media is not in a segment skip state. In FIG. 21, it is specified by “false” that it is requested to set a state in which segment skip is not performed. Yes.
  • the language to be used is specified by language, and in the case of FIG. 21, it is specified by [“en”, “fr”] that it is required to preferentially set the use of English and French.
  • the segment specifies a preference for setting the segment data, and the first period ID among them specifies the image playback start position. In FIG. 21, this is set to “1”, and the start period is set as the image playback start position. Is specified to be set with priority.
  • the image type of the segment data is specified by the first adaptationSetID, and in the case of FIG. 21, it is indicated that “mainVideo” is required to set the main image preferentially.
  • the type of image representation is designated by the first reprsentationID, and in FIG. 21, it is set to [“1”, “2”, “3”], and the type of reprsentation is any one of 1 to 3. It is shown that it is demanded to set with priority. In this case, three types of representations are designated, but the server determines the state of the band among these three types of representations and sets an optimal representation.
  • the second period ID specifies the audio playback start position. In the case of FIG. 21, it is set to “1”, and it is required to preferentially set the leading period as the audio playback start position. It is specified.
  • the audio type of the segment data is specified by the second adaptationSetID, and in the case of FIG. 21, it is shown that the main audio is requested to be set preferentially by “mainAudio”.
  • the type of audio representation is specified by the second reprsentationID. In FIG. 21, it is set to [“1”], and the type of audio representation is preferentially set to 1. Is shown to be required.
  • the preference of the client specifies which MediaSegment of Media is streamed by preference. (If nothing is specified, the server automatically selects according to the Capability of the client.)
  • the server executes Network Adaptation (processing according to the network status), and within that range, the server determines the appropriate resource based on the bandwidth adaptation etc. Select a presentation and stream it.
  • control data is transmitted and received between the server 201 and the client 202, and distribution of the content file is controlled.
  • FIG. 22 shows a sequence for starting VOD playback.
  • step S11 the client 202 transmits control data (capability, openMedia, playStream) to the server 201, notifies the client 202 of the capability, and requests to start a stream by designating the medium.
  • control data capability, openMedia, playStream
  • the server 201 reads the media information of the media designated by the client 202, and returns the media information by sending control data (mediaInfo) to the client 202 in step S12.
  • control data mediaInfo
  • step S13 the server 201 transmits control data (streamInfo) to the client 202 to notify the attribute of segment data to be transmitted next. Subsequently, the server 201 transmits the segment data (RepID2011, SegmentNo 0) to the client 202 in step S14.
  • control data streamInfo
  • segment data RepID2011, SegmentNo 0
  • the client 202 receives this segment data and starts decoding.
  • the client 202 transmits control data (playerInfo) to the server 201, thereby notifying the elapsed time from the start of stream decoding.
  • the server 201 sequentially transmits segment data to the client 202.
  • the server 201 can perform appropriate band adaptation by estimating the buffer amount of the client from CurrentPresentanTime with PlayerInfo that changes the representation (Rep) by processing according to the state of the network (Network Adaptation). .
  • the server 201 transmits control data (streamInfo) in step S16, and transmits segment data (RepID 3, SegmentNo 1) in step S17. Subsequently, in step S18, the server 201 transmits control data (streamInfo) to the client 202. In step S19, the server 201 transmits segment data (RepID 3, SegmentNo 2).
  • the server 201 can continue to send segment data in accordance with the playback progress of the client 202 by Transmission Control. That is, the server 201 transmits control data (streamInfo) to the client 202 in step S20 at a timing in accordance with the playback progress of the client 202, and transmits segment data (RepID 3, SegmentNo 3) in step S21.
  • control data streamInfo
  • SegmentNo 3 segment data
  • the client 202 transmits control data (playerInfo) to the server 201 in step S22, and notifies the elapsed time after starting the decoding of the stream.
  • FIG. 23 shows a sequence for interrupting and resuming VOD playback.
  • step S31 transmits control data (streamInfo) in step S31, and transmits segment data (RepID 2, SegmentNo 153) in step S32.
  • step S33 transmits control data (playerInfo) to the server 201 in step S33.
  • the client 202 transmits control data (stopStream) to the server 201 in step S34.
  • stopStream control data
  • the client 202 notifies the server 201 that the stream is to be stopped.
  • the server 201 transmits the control data (streamInfo) and the segment data (RepID , 3, SegmentNo 154) in steps S35 and S36, respectively, and then in step S37, the control data (streamInfo) notifying the interruption. Is transmitted to the client 202.
  • step S38 the client 202 transmits control data (Start Stream), and the segment number (155 in the example of FIG. 23) to be resumed. specify.
  • the server 201 transmits segment data (RepIDp3, SegmentNo 155) to the client 202 in step S39, and the client 202 sends control data (playerInfo) to the server 201 in step S40.
  • FIG. 24 shows a sequence in which VOD playback is played to the end and finished.
  • the transmission of the segment data is continued, and the server 201 transmits the control data (streamInfo) in step S51, and transmits the segment data (RepID 2, SegmentNo 873) in step S52. Then, the client 202 transmits control data (playerInfo) to the server 201 in step S53.
  • the server 201 transmits control data (streamInfo) in step S54, and transmits segment data (RepID , 2, SegmentNo 874) in step S55. If the transmitted segment is the end of the stream, the server 201 transmits control data (streamInfo) in step S56 to notify the client 202 that the stream has ended.
  • the client 202 transmits control data (playerInfo) to the server 201 in step S57, and then transmits control data (closeMedia, stopStream) to the server 201 in step S58.
  • control data playerInfo
  • closeMedia, stopStream control data
  • the client 202 notifies the server 201 that the playback of all received segments is finished and the media is closed.
  • step S59 the server 201 transmits control data (MediaStatus) to the client 202, and the VOD reproduction is ended.
  • FIG. 25 shows a sequence for starting live reproduction when viewing from the beginning of the live.
  • step S71 the client 202 transmits control data (capability, openMedia, playStream) to the server 201, notifies the client 202 of the capability, and requests to start the stream by specifying the medium.
  • control data capability, openMedia, playStream
  • the server 201 reads the media information of the media designated by the client 202, and returns the media information by transmitting control data (mediaInfo) to the client 202 in step S72.
  • control data mediaInfo
  • step S73 the server 201 transmits control data (mediaInfo) to the client 202 to notify MediaStatus.
  • step S74 the server 201 transmits control data (mediaInfo, streamInfo) to the client 202. Subsequently, the server 201 transmits segment data (Segment Data of SegmentNo 0) to the client 202 in step S75.
  • control data mediaInfo, streamInfo
  • segment data Segment Data of SegmentNo 0
  • the client 202 receives the segment data and starts decoding.
  • the client 202 transmits control data (playerInfo) to the server 201, for example, to notify the elapsed time since the start of decoding the stream. .
  • segment data is transmitted from the server 201 to the client 202 in the same manner.
  • FIG. 26 shows a sequence for starting live reproduction when viewing from the middle of live performance.
  • step S91 the client 202 transmits control data (capability, openMedia, playStream) to the server 201, notifies the client 202 of the capability, and requests the start of the stream by specifying the medium.
  • control data capability, openMedia, playStream
  • the server 201 reads the media information of the media designated by the client 202, and returns the media information by transmitting control data (mediaInfo) to the client 202 in step S92.
  • control data mediaInfo
  • the client 202 receives the segment data and starts decoding.
  • the client 202 transmits control data (playerInfo) to the server 201, for example, to notify the elapsed time since starting the decoding of the stream. .
  • the server 201 can continue to send segment data, and transmits control data (streamInfo) and segment data (Segment Data Data of Segment No 1448) in steps S96 and S97, respectively. Subsequently, in steps S98 and S99, the server 201 transmits control data (streamInfo) and segment data (Segment Data of SegmentNo 1449), respectively.
  • segment data is transmitted from the server 201 to the client 202 in the same manner.
  • the server 201 includes a reception unit 211, a transmission unit 212, a storage unit 312, and a communication processing unit 214.
  • the receiving unit 211 receives data transmitted to the server 201 via the network and supplies the data to the communication processing unit 214.
  • the transmission unit 212 transmits, for example, various control data to the client 202 according to the communication processing executed in the communication processing unit 214, or appropriately reads the content file segment from the storage unit 312 and transmits it to the client 202.
  • the storage unit 312 stores content files such as images and sounds distributed from the server 201.
  • the communication processing unit 214 performs communication processing using the control data as described above with the communication processing unit 227 of the client 202, for example.
  • the client 202 includes a receiving unit 221, a transmitting unit 222, a buffer 223, a reproduction processing unit 224, a display 225, a speaker 226, and a communication processing unit 227.
  • the receiving unit 221 receives, for example, control data transmitted from the server 201 and supplies the control data to the communication processing unit 227, or receives a segment of a content file transmitted from the server 201 and supplies it to the buffer 223.
  • the buffer 223 temporarily holds a segment of the content file supplied from the receiving unit 221.
  • the playback processing unit 224 performs playback processing that reads and decodes the segments held in the buffer 223, supplies video data to the display 225, and supplies audio data to the speaker 226. Thereby, the display 225 displays an image, and the speaker 226 outputs sound.
  • the communication processing unit 227 performs communication processing using the control data as described above with the communication processing unit 214 of the server 201, for example.
  • step S111 the communication processing unit 227 of the client 202 controls the transmission unit 222 to transmit control data (capability, openMedia, playStream) to the server 201.
  • control data Capability, openMedia, playStream
  • the capabilities of the client 202 are notified to the server 201, the media is specified, and the start of the stream is requested.
  • the communication processing unit 214 of the server 201 controls the reception unit 211 to receive this request, and reads the media information of the media designated by the client 202 from the storage unit 213. In step S ⁇ b> 112, the communication processing unit 214 controls the transmission unit 212 to transmit the control data (mediaInfo) to the client 202, thereby returning the media information.
  • step S113 the communication processing unit 214 of the server 201 controls the transmission unit 212 to transmit control data (streamInfo (RepID , 1, SegmentNo 0, RepRep: true)) to the client 202 and then transmit it. Notify the attribute of the segment data to be processed.
  • step S ⁇ b> 114 the communication processing unit 214 controls the transmission unit 212 to transmit the segment data (RepID2021, SegmentNo 0) to the client 202.
  • control data and the segment data are each arranged in the payload portion of an individual subframe as described with reference to FIG.
  • step S113 the communication processing unit 214 of the server 201 controls the transmission unit 212 to transmit segment data (MediaMedia) at the next timing using StreamInfo using the control data before transmitting the segment data.
  • Data (RepRep: true) indicating that there is a possibility of transmitting segment data of different representations with the same Segment No, together with information (RepID 1) that identifies the representation that is scheduled to be transmitted by (Data Frame) Send.
  • the segment data to be transmitted next has a segment number of 0 (Segment No. 0) and the segment representation is Video1 ( It is indicated that the information is RepID: Video1). Furthermore, information (Multiple Representation: True) indicating that there is a possibility of sending segment data of different representations with the same Segment No is transmitted. Note that Multiple Representationl: True corresponds to RepRep: true in FIG.
  • step S114 segment data is transmitted as shown in the second from the left in the upper part of FIG.
  • the communication processing unit 227 of the client 202 controls the receiving unit 221 to receive this segment data and start decoding.
  • the communication processing unit 227 controls the transmission unit 222 to transmit control data (playerInfo (CurrentPresentanTime)) to the server 201, thereby notifying the elapsed time from the start of stream decoding. To do.
  • the communication processing unit 214 of the server 201 controls the transmission unit 212 to sequentially transmit the segment data to the client 202.
  • the communication processing unit 214 of the server 201 estimates the buffer amount of the buffer 223 of the client 202 from CurrentPresentanTime by PlayerInfo that changes the representation (Rep) by processing according to the network state (Network Adaptation). Can adapt to the appropriate band.
  • step S116 a control data frame (Control Frame ⁇ streamInfo) composed of control data (streamInfo (RepID 3, SegmentNo 0, RepRep: false)) is transmitted as shown in the lower leftmost column of FIG.
  • the client 202 discards the segment data (RepID 1, SegmentNo 0) that has been transmitted immediately before and has a low bit rate.
  • step S117 the communication control unit 214 of the server 201 controls the transmission unit 212 so that the segment data (RepID3, A segment data frame (Media Data Frame 0) consisting of Segment No 0 is transmitted.
  • the segment data to be transmitted next has the same segment number as that of the segment data transmitted immediately before (Segment No. 0), and the bit rate is higher.
  • a control frame composed of control data indicating Video3 (RepID: Video3) of the representation is transmitted.
  • the communication control unit 214 of the server 201 controls the transmission unit 212, and in step S117, the segment data frame (RepID 3, SegmentNo. 0) is sent as a segment data frame (Media Data Frame 0).
  • the communication control unit 214 of the server 201 controls the transmission unit 212, and in step S118, as shown in the third from the lower left in FIG. 30, a control frame (Control ⁇ ⁇ ⁇ ⁇ Frame consisting of control data (streamInfo) streamInfo) to the client 202.
  • a control frame Control ⁇ ⁇ ⁇ ⁇ Frame consisting of control data (streamInfo) streamInfo
  • the communication control unit 214 of the server 201 controls the transmission unit 212 so that the segment data including the segment data (RepID 3, SegmentNo 1) is shown as the fourth from the left in the lower part of FIG. Send the frame (Media Data Frame 1).
  • the communication control unit 227 of the client 202 controls the reception unit 221 to receive the segment data and start decoding.
  • the communication control unit 227 controls the transmission unit 222 to transmit control data (playerInfo (CurrentPresentanTime)).
  • playerInfo CurrentPresentanTime
  • the server 202 is notified of the elapsed time from the start of the stream decoding in the client 202.
  • the communication control unit 214 of the server 201 can continue to send segment data as transmission progresses by the client 202 using Transmission Control. That is, the communication control unit 214 of the server 201 controls the transmission unit 212 in step S121 at the timing in accordance with the progress of reproduction of the client 202, and the control data as shown in the fifth from the lower left in FIG. A control frame (Control Frame streamInfo) composed of (streamInfo) is transmitted to the client 202.
  • Control Frame streamInfo composed of (streamInfo) is transmitted to the client 202.
  • step S122 the communication control unit 214 of the server 201 controls the transmission unit 212, and as shown in the lower rightmost column of FIG. 30, a segment data frame (Media ID “RepID 3, SegmentNo 2”) Data Frame2) is transmitted.
  • a segment data frame Media ID “RepID 3, SegmentNo 2”
  • the reproduction processing unit 224 changes the reproduction status
  • the communication control unit 227 of the client 202 controls the transmission unit 222 in step S123 to transmit the control data (playerInfo) to the server 201, thereby Notify the elapsed time since the start of decoding.
  • the server 201 switches the representation as necessary according to the state of the band, and transmits the segment data to the client 202.
  • the segment data that is the same as the segment number sent immediately before and is switched to the representation according to the band status is transmitted.
  • step S115 If it is determined by the processing in step S115 that the current representation is appropriate for the current band, for example, the communication processing unit 214 of the server 201 orders the segment numbers of the segment data transmitted immediately before. 1 is incremented and the segment data of the same representation is transmitted. That is, in the next step, as shown in the third column from the left in the upper part of FIG. 30, the server 201 controls the control frame (Control Frame) composed of control data (streamInfo (RepID 1, SegmentNo 1, RepRep: false)). streamInfo) to the client 202.
  • Control Frame composed of control data (streamInfo (RepID 1, SegmentNo 1, RepRep: false)
  • streamInfo streamInfo
  • the server displays a segment data frame (Media Data Frame 1 consisting of segment data (RepID 1, Segment No 1) notified in advance by control data in advance. Thereafter, the segment number is sequentially incremented by one, and the control data frame made up of control data and the segment data frame made up of segment data are sequentially sent alternately.
  • Segment No 1 Segment data
  • a plurality of types of representations are transmitted for the same segment data at the start of playback in accordance with the band status. It becomes possible to transmit. As a result, it is possible to prevent playback from starting from an image with a low image quality, and it is possible to reproduce from an image with an appropriate image quality according to the state of the band. As a result, the operability in the reproduction process can be improved.
  • Sub-segment data is a smaller unit than segment data. As a result, a higher-speed operation is realized than the processing in units of segment data, thereby preventing a transmission delay or the like.
  • openMedia openMedia
  • playStream control data
  • the capability of the client 202 is notified, and a request is made to start the stream by specifying the media.
  • the communication control unit 227 of the client 202 controls the transmission unit 222 to confirm that transmission in units of subsegments is possible.
  • the communication control unit 214 of the server 201 reads the media information of the media designated by the client 202 from the storage unit 213, controls the transmission unit 212 in step S142, and sends control data (mediaInfo) to the client 202.
  • the media information is returned by sending to.
  • step S143 the communication control unit 214 of the server 201 controls the transmission unit 212 to control data (streamInfo (RepID 1, SegmentNo 1, SubsegmentNo, SAPType 1) as shown in the leftmost part of FIG. ) Is transmitted to the client 202, and the attribute of the sub-segment to be transmitted next is notified.
  • control data streamInfo (RepID 1, SegmentNo 1, SubsegmentNo, SAPType 1) as shown in the leftmost part of FIG. ) Is transmitted to the client 202, and the attribute of the sub-segment to be transmitted next is notified.
  • FIG. 32 shows a control frame (Control Frame) composed of control data transmitted when two segment data of different representations on the left and right in the figure are each composed of two subsegment data, and a subsegment It is a figure explaining the transmission order of the media data frame (Media
  • the representation is video1 (RepID: video1) and the segment number is 1 (Segment No 1).
  • the procedure when segment data is transmitted and the representation is video2 (RepID: video2)
  • the procedure is shown when segment data with a segment number of 2 (Segment No 2) is transmitted.
  • the sub-segment data is, for example, GOP (Group of Picture) in a case where the segment data is MPEG image data, and is data of a constituent unit having a smaller data size than the constituent unit of the segment data.
  • GOP Group of Picture
  • control data is also configured in units of subsegments.
  • control data (streamInfo (RepID video1, SegmentNo.1) is transmitted at the timing before the first subsegment data (Media Data Frame: Segment Data of Subsegment 1) for the left segment data in the figure is transmitted.
  • a control data frame (Control Frame) consisting of SubsegmentNo 1, SAPType 1)
  • control data (streamInfo (RepID video1, SegmentNo 1, SubsegmentNo.1) is sent at the timing before the second subsegment data (Media Data Frame: Segment Data of Subsegment 2) for the left segment data in FIG. 2, a control data frame (Control Frame) consisting of SAPType 3)) is transmitted.
  • control data (streamInfo (RepID video2, SegmentNo 2, SubsegmentNo 1) is sent at the timing before the first subsegment data (Media Data : Frame: Segment Data of Subsegment 1) for the segment data on the right side in FIG. 32 is transmitted. , SAPType 1)), a control data frame (Control Frame) is transmitted.
  • the control data (streamInfo (RepID video2, SegmentNo 2, SubsegmentNo 2, segmentSAPType) is sent at the timing before the second subsegment data (Media Data Frame: Segment Data of Subsegment 2) for the right segment in the figure is transmitted.
  • a control data frame consisting of 2) is transmitted.
  • step S144 the communication control unit 214 of the server 201 controls the transmission unit 212 to perform the first subsegment data (Media Data Frame: Segment Data Data of Data Subsegment 1 for the left segment in FIG. (RepID video1, SegmentNo 1, SubsegmentNo 1, SAPType 1)).
  • Media Data Frame Segment Data Data of Data Subsegment 1 for the left segment in FIG. (RepID video1, SegmentNo 1, SubsegmentNo 1, SAPType 1)
  • the communication control unit 227 of the client 202 controls the receiving unit 221 to receive this segment data and store it in the buffer 223. At this time, the reproduction processing unit 224 starts decoding the segment data buffered in the buffer 223. In step S145, the communication control unit 227 controls the transmission unit 222 to transmit control data (playerInfo) to the server 201, thereby notifying the elapsed time from the start of the stream decoding in the reproduction processing unit 224. To do. At this time, the client 202 can execute a process of displaying an image based on smaller data than the segment data in sub-segment units, so that the image can be displayed at a higher speed.
  • step S146 the communication processing unit 214 of the server 201 controls the transmission unit 212 to control the second sub-segment data of the segment data on the left side of FIG. 32 (streamInfo (RepIDpvideo1, SegmentNo 1) , SubsegmentNo 2, SAPType 3)) is transmitted to the client 202, and the attribute of the next subsegment to be transmitted is notified.
  • streamInfo RepIDpvideo1, SegmentNo 1 , SubsegmentNo 2, SAPType 3
  • step S147 the communication control unit 214 of the server 201 controls the transmission unit 212, and the second subsegment data (Media Data Frame: Segment Data Data of Data Subsegment 2 for the left segment in FIG. 32). (RepID video1, SegmentNo 1, SubsegmentNo 2, SAPType 3)).
  • the communication control unit 227 of the client 202 controls the transmission unit 222 to transmit control data (closeMedia, stopStream) to the server 201 in step S148.
  • the playback processing unit 224 of the client 202 ends the playback of all received segments stored in the buffer 223.
  • the communication processing unit 227 controls the transmission unit 222 to notify the server 201 that the medium is to be closed.
  • step S 149 the communication processing unit 214 of the server 201 controls the transmission unit 212 to transmit control data (MediaStatus) to the client 202.
  • control frame composed of control data (streamInfo (RepID video2, SegmentNo 2, SubsegmentNo 1, SAPType 2)) of the first subsegment data in the segment data on the right side of FIG. Then, the attribute of the sub-segment to be transmitted next is notified.
  • step S151 the communication control unit 214 of the server 201 controls the transmission unit 212 so that the first subsegment data (Media Data Frame: Segment Data Data of Data Subsegment 1 (RepID video 2) for the right segment in FIG. , SegmentNo 2, SubsegmentNo 1, SAPType 2)).
  • Media Data Frame Segment Data Data of Data Subsegment 1 (RepID video 2) for the right segment in FIG. , SegmentNo 2, SubsegmentNo 1, SAPType 2)
  • step S152 the communication control unit 214 of the server 201 controls the transmission unit 212 to notify the client of the operation stop.
  • control data StreamInfo (SegmentNo, SubSegmentNo, SAP Type) is attached and managed in sub-segment units smaller than the segment data unit, so that the image playback display time, the time until completion of the stop, In addition, it is possible to realize switching of contents and the like at higher speed. That is, as described above, since the process for which transmission has been started cannot be stopped, by managing transmission in units smaller than segment data, such as sub-segment data, the image display time, the time until completion of the stop, In addition, it is possible to realize switching of contents and the like at higher speed.
  • the communication control unit 214 of the server 201 analyzes (parses) the segment data, divides it into sub-segments if possible, and transmits them in units of sub-segments. In this case, the segment data can be managed more quickly. As a result, it is possible to improve the operability in reproduction. ⁇ 5. Fourth Embodiment> ⁇ Auto Segment Skip for Live Streaming> Next, a fourth embodiment to which the present technology is applied will be described with reference to FIG.
  • FIG. 33 shows a sequence performed when network congestion occurs during live playback.
  • step S161 the client 202 transmits control data (capability, openMedia, playStream) to the server 201, notifies the client 202 of the capability, and requests to start the stream by specifying the medium.
  • control data capability, openMedia, playStream
  • segmentSkip it is possible to specify whether segment skip can be supported by segmentSkip.
  • FIG. 33 it is possible to handle segment skip. It is set to “true”.
  • the server 201 reads the media information of the media designated by the client 202, and returns the media information by transmitting control data (mediaInfo) to the client 202 in step S162.
  • control data mediaInfo
  • step S163 the server 201 transmits segment data (MediaDiscDis1, SegmentNo 1699) to the client 202 in step S164 after transmitting the control data (streamInfo) to the client 202.
  • segment data MediaDiscDis1, SegmentNo 1699
  • segment data is sequentially transmitted, and the server 201 transmits the control data (streamInfo) in step S165, and then transmits the segment data (MediaDisc 1, Segment No 1700) in step S166.
  • the client 202 transmits control data (playerInfo) to the server 201 in step S167.
  • control data playerInfo
  • the control data (playerInfo) includes currentPresentationTime and BufferedTime as shown in FIG.
  • Network Congestion Network Congestion
  • the server 201 takes time to transmit the previous segment data (Segment No. 1700). If it is determined that the segment No. 1701 is not reproduced, the server 201 transmits the Segment No. 1701. skip.
  • the server 201 transmits the control data (mediaInfo) and the control data (streamInfo) in steps S168 and S169, and then transmits the segment data (MediaDisc 1, SegmentNo 1701) in step S170. That is, the server 201 resumes transmission from the segment that is played live by the client 202.
  • the server 201 can signal how many segments are buffered to the client 202 adaptively to the bandwidth. That is, the server 201 can signal currentPresentationTime or BufferedTime by the control data (playerInfo) transmitted from the client 202 in step S167.
  • the currentPresentationTime indicates an elapsed time since the playback processing unit 224 starts decoding the stream in the client 202.
  • BufferedTime indicates the time during which playback can be continued with the segment data held in the buffer 223 of the client 202, and is equivalent to the time when playback can be continued in a state where no segment data can be received from the network. is there.
  • the server 201 can perform transmission of a segment by skipping (avoiding) transmission of a segment that is determined not to be reproduced even if it is transmitted based on currentPresentationTime or BufferedTime. Thereby, for example, since unnecessary segments that are not reproduced are not transmitted, the bandwidth can be used more effectively, and when network congestion occurs during live reproduction, appropriate restoration can be performed.
  • control data (playerInfo) for notifying the currentPresentationTime and BufferedTime does not need to be transmitted every time.
  • the client 202 transmits when playback is started or when playback is resumed due to data depletion. be able to.
  • Fifth embodiment> ⁇ Fast Switching of multiple media> Next, a fifth embodiment to which the present technology is applied will be described with reference to FIGS. 34 and 35.
  • 34 and 35 show a sequence for switching and reproducing a plurality of media.
  • step S181 the client 202 transmits the control data (capability, openMedia, playStream) to the server 201, notifies the client 202 of the capability, and requests the start of the stream by specifying the medium.
  • control data capability, openMedia, playStream
  • the server 201 reads the media information of the media designated by the client 202, and returns the media information by transmitting control data (mediaInfo) to the client 202 in step S182.
  • control data mediaInfo
  • the medium to be reproduced is MediaDescMedia1.
  • step S183 the server 201 transmits control data (streamInfo) to the client 202 to notify the attribute of segment data to be transmitted next. Subsequently, the server 201 transmits the segment data (MediaDesc ⁇ ⁇ ⁇ 1, SegmentNo1447) to the client 202 in step S184. At this time, for example, in the case of live reproduction and broadcasting has already started, transmission is performed from the latest segment.
  • control data streamInfo
  • segment data MediaDesc ⁇ ⁇ ⁇ 1, SegmentNo1447
  • the client 202 receives this segment data and starts decoding, and transmits control data (playerInfo) to the server 201 in step S185.
  • the server 201 continues to transmit segment data, and transmits control data (streamInfo) and segment data (MediaDesc 1, SegmentNo1448) to the client 202 in steps S186 and S187, respectively.
  • control data streamInfo
  • segment data MediaDesc 1, SegmentNo1448
  • step S188 the client 202 transmits the control data (openMedia) to the server 201 and requests to open by designating another medium.
  • control data openMedia
  • the server 201 reads the media information of the media designated by the client 202, and returns the media information by transmitting control data (mediaInfo) to the client 202 in step S189.
  • control data mediaInfo
  • the opened media is set to MediaDesc 2 that is different from MediaDesc 1 that is being reproduced.
  • the server 201 continues to transmit segment data, and transmits control data (streamInfo) and segment data (MediaDescMedia1, SegmentNo1449) to the client 202 in steps S190 and S191, respectively. Subsequently, as shown in FIG. 35, in steps S192 and S193, control data (streamInfo) and segment data (MediaDesc 1, SegmentNo1450) are transmitted to the client 202, respectively.
  • control data streamInfo
  • segment data MediaDesc 1, SegmentNo1450
  • step S194 when the user performs an operation on the client 202 so as to switch the media, in step S194, the client 202 transmits control data (changeMedia) to the server 201, and the server is configured to switch the streamed media to MediaDesc 2. Request to 201.
  • control data changeMedia
  • the server 201 transmits segment data (MediaDesc 2, SegmentNo7337) in step S196, following the transmission of the control data (streamInfo) in step S195. Thereby, stream reproduction is continued without interruption.
  • the server 201 continues to transmit segment data, and transmits control data (streamInfo) and segment data (MediaDesc 2, SegmentNo7338) to the client 202 in steps S197 and S198, respectively.
  • control data streamInfo
  • segment data MediaDesc 2, SegmentNo7338
  • step S199 the client 202 transmits control data (changeMedia) to the server 201 and switches the streamed media to MediaDescMedia1. Request to the server 201.
  • control data changeMedia
  • the server 201 transmits segment data (MediaDesc 1, SegmentNo1452) in step S201 following transmission of control data (streamInfo) in step S200. At this time, the server 201 transmits from the latest segment in the case of live playback, and transmits from the continuation of the previous media segment in the case of VOD playback.
  • the server 201 continues to transmit segment data, and transmits control data (streamInfo) and segment data (MediaDesc 1, SegmentNo1453) to the client 202 in steps S202 and S203, respectively.
  • control data streamInfo
  • segment data MediaDesc 1, SegmentNo1453
  • segment data is transmitted from the server 201 to the client 202.
  • the server 201 can open a plurality of media in advance in response to a request from the client 202.
  • the client 202 transmits the control data (changeMedia) in the stream, so that the server 201 can transmit the segments of each medium without breaks. That is, since the client 202 does not need to load a new MPD (media information) when switching media, the client 202 can smoothly switch channels and play media.
  • control data changeMedia
  • the client 202 may make an inquiry to the server 201 as to whether the media can be opened. It should be noted that MPD information can be maintained statefully in the OpenMedia and CloseMedia commands. Also, in response to the client 202 sending OpenMedia, the server 201 returns a MediaDescriptor.
  • the series of processes described above can be executed by hardware or can be executed by software.
  • a program constituting the software is installed in the computer.
  • the computer includes, for example, a general-purpose personal computer that can execute various functions by installing a computer incorporated in dedicated hardware and various programs.
  • FIG. 36 is a block diagram illustrating an example of a hardware configuration of a computer that executes the above-described series of processes using a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • An input / output interface 910 is also connected to the bus 904.
  • An input unit 911, an output unit 912, a storage unit 913, a communication unit 914, and a drive 915 are connected to the input / output interface 910.
  • the input unit 911 includes, for example, a keyboard, a mouse, a microphone, a touch panel, an input terminal, and the like.
  • the output unit 912 includes, for example, a display, a speaker, an output terminal, and the like.
  • the storage unit 913 includes, for example, a hard disk, a RAM disk, a nonvolatile memory, and the like.
  • the communication unit 914 includes a network interface, for example.
  • the drive 915 drives a removable medium 921 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 901 loads the program stored in the storage unit 913 into the RAM 903 via the input / output interface 910 and the bus 904 and executes the program, for example. Is performed.
  • the RAM 903 also appropriately stores data necessary for the CPU 901 to execute various processes.
  • the program executed by the computer can be recorded and applied to, for example, a removable medium 921 as a package medium or the like.
  • the program can be installed in the storage unit 913 via the input / output interface 910 by attaching the removable medium 921 to the drive 915.
  • This program can also be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting. In that case, the program can be received by the communication unit 914 and installed in the storage unit 913.
  • a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
  • the program can be received by the communication unit 914 and installed in the storage unit 913.
  • this program can be installed in the ROM 902 or the storage unit 913 in advance.
  • the program executed by the computer may be a program that is processed in time series in the order described in this specification, or in parallel or at a necessary timing such as when a call is made. It may be a program for processing.
  • the step of describing the program recorded on the recording medium is not limited to the processing performed in chronological order according to the described order, but may be performed in parallel or It also includes processes that are executed individually.
  • the system means a set of a plurality of components (devices, modules (parts), etc.), and it does not matter whether all the components are in the same housing. Accordingly, a plurality of devices housed in separate housings and connected via a network and a single device housing a plurality of modules in one housing are all systems. .
  • the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
  • the configurations described above as a plurality of devices (or processing units) may be combined into a single device (or processing unit).
  • a configuration other than that described above may be added to the configuration of each device (or each processing unit).
  • a part of the configuration of a certain device (or processing unit) may be included in the configuration of another device (or other processing unit). .
  • the present technology can take a configuration of cloud computing in which one function is shared by a plurality of devices via a network and is jointly processed.
  • each step described in the above flowchart can be executed by one device or can be shared by a plurality of devices.
  • the plurality of processes included in the one step can be executed by being shared by a plurality of apparatuses in addition to being executed by one apparatus.
  • the information processing apparatus includes, for example, a transmitter or a receiver, an optical disc, a magnetic disc, a wired broadcast such as a satellite broadcast and a cable TV, a delivery on the Internet, and a delivery to a terminal by cellular communication.
  • the present invention can be applied to various electronic devices such as a recording device that records an image on a medium such as a flash memory or a reproducing device that reproduces an image from the storage medium.
  • An information processing apparatus comprising: a transmission unit configured to transmit segment data including a plurality of types of encoded data to the client for the same partial image at the start of reproduction of the content data.
  • (2) further includes a communication control unit that controls the operation of the transmission unit; The communication control unit uses the partial image that is the same as the transmitted partial image based on a reproduction state of the partial image transmitted by the transmission unit at the client at the start of reproduction of the content data.
  • the information processing apparatus according to (1), wherein segment data composed of encoded data of different types is transmitted to the client by controlling the transmission unit.
  • the communication control unit When receiving the receivable information indicating that it is possible to receive segment data composed of a plurality of types of encoded data for the same partial image from the client by controlling the receiving unit, For the client capable of receiving receivable information, the transmission unit is controlled, and at the start of reproduction of the content data, segment data composed of a plurality of types of encoded data is added to the same partial image.
  • the information processing apparatus according to (2) which is transmitted to a client.
  • An information processing method comprising: transmitting segment data composed of a plurality of types of encoded data to the client for the same partial image at the start of reproduction of the content data.
  • a computer that controls an information processing apparatus that realizes the function of the server of a distribution system that distributes content data from a server to a client using MPEG-DASH;
  • a program for executing processing including a step of transmitting segment data composed of a plurality of types of encoded data to the client for the same partial image at the start of reproduction of the content data.
  • a receiving unit that receives segment data from a plurality of types of encoded data for the same partial image at the start of reproduction of the content data;
  • a buffering unit for buffering segment data composed of encoded data of partial images received by the receiving unit;
  • a playback unit that plays back segment data composed of encoded data of the partial images buffered in the buffering unit,
  • the buffering unit is configured to perform buffering when the segment data including the encoded data of the partial image received by the receiving unit is the same partial image as the segment data including the encoded data of the buffered partial image.
  • An information processing apparatus that discards segment data composed of encoded data of a partial image, and buffers segment data composed of encoded data of the partial image received by the receiving unit. (7) When the segment data composed of the encoded data of the partial image received by the receiving unit is the same partial image as the segment data composed of the encoded data of the buffered partial image, The information processing apparatus according to (6), wherein segment data including encoded data of a buffered partial image is reproduced. (8) a transmission unit that transmits data to the server; A communication control unit for controlling the operation of the transmission unit; The information processing apparatus according to (6), wherein the communication control unit controls the transmission unit to transmit information indicating a reproduction state of the segment data by the reproduction unit to the server.
  • the communication control unit The transmission unit is controlled to transmit to the server receivable information indicating that segment data composed of a plurality of types of encoded data can be received for the same partial image from the client.
  • the information processing apparatus according to (8).
  • segment data consisting of a plurality of types of encoded data is received from the server for the same partial image, Buffer the segment data consisting of the encoded data of the received partial image, Replaying segment data consisting of encoded data of the buffered partial image, When the segment data consisting of the encoded data of the received partial image is the same partial image as the segment data consisting of the encoded data of the buffered partial image, the encoded data of the buffered partial image is used.
  • An information processing method for discarding segment data and buffering segment data composed of encoded data of a received partial image (11) A computer that controls an information processing apparatus that realizes the function of the client of a distribution system that distributes content data from a server to a client using MPEG-DASH; At the start of reproduction of the content data, segment data consisting of a plurality of types of encoded data is received from the server for the same partial image, Buffer the segment data consisting of the encoded data of the received partial image, Replaying segment data consisting of encoded data of the buffered partial image, When the segment data consisting of the encoded data of the received partial image is the same partial image as the segment data consisting of the encoded data of the buffered partial image, the encoded data of the buffered partial image is used.
  • a program that executes processing for discarding segment data and buffering segment data composed of encoded data of received partial images (12) A distribution system including the server that distributes content data from a server to a client using MPEG-DASH, and first and second information processing apparatuses that realize the function of the client,
  • the first information processing apparatus includes: A transmission unit that transmits segment data composed of a plurality of types of encoded data to the second information processing apparatus for the same partial image at the start of reproduction of the content data;
  • the second information processing apparatus A reception unit that receives segment data composed of a plurality of types of encoded data from the first information processing apparatus for the same partial image at the start of reproduction of the content data;
  • a playback unit that plays back segment data composed of encoded data of the partial images buffered in the buffering unit,
  • the buffering unit is configured to perform buffering when the segment data including the encoded data of the partial image received by the receiving unit is the same
  • 100 distribution system 101 distribution data generation device, 102 distribution server, 103 terminal device, 104 network, 201 server, 202 client

Abstract

 本開示は、再生時に必ず低画質の画像から再生されることがないようにすることができる情報処理装置および方法、配信システム、並びにプログラムに関する。 MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムにおいて、サーバが、コンテンツデータの再生開始時において、最初に送ったセグメントデータからなるMedia Data Frame0(RepID video1)のクライアントにおける再生状態に応じて、帯域の状態を判断し、同一の部分画像に対して、高画質の符号化データ(RepID video3)からなるセグメントデータからなるMedia Data Frame0を送信し、クライアントは、後から送られてくる高画質の符号化データを再生する。本技術は、例えば、配信システムに適用できる。

Description

情報処理装置および方法、配信システム、並びにプログラム
 本開示は、情報処理装置および方法、配信システム、並びにプログラムに関し、特に、動画再生における操作性を向上できるようにした情報処理装置および方法、配信システム、並びにプログラムに関する。
 近年、HTTP(Hyper Text Transfer Protocol)を利用したコンテンツ配信技術としてMPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)が標準化された(例えば、非特許文献1参照)。MPEG-DASHでは、同一コンテンツが異なるビットレートで表現された複数の符号化データをコンテンツサーバに格納し、クライアントが、ネットワーク帯域に応じて複数の符号化データのいずれかの符号化データを選択しながら再生するABS(Adaptive Bitrate Streaming)技術が採用されている。
 ところで、全体画像の代わりにその一部である部分画像を適応的に選択して配信することが考えられた。例えば、全体画像の内、画像データを受け取る端末側によって選択された部分の部分画像を配信したり、端末の性能(例えばCPU等の処理能力やディスプレイの大きさ等)や伝送経路やサーバの負荷状況等に応じて、配信する部分画像の大きさを制御したりすることが考えられた。
MPEG-DASH(Dynamic Adaptive Streaming over HTTP)(URL:http://mpeg.chiariglione.org/standards/mpeg-dash/media-presentation-description-and-segment-formats/text-isoiec-23009-12012-dam-1)
 しかしながら、従来のMPEG-DASH規格では、同一の部分画像について、複数のビットレートや複数の種別で変換された符号化データを配信できないため、再生開始時には画像の破綻の恐れの少ない低画質の符号化データにより再生を開始せざるを得なかった。
 本開示は、このような状況に鑑みてなされたものであり、同一のシーンについて、複数のビットレートや複数の種別で変換された符号化データを配信できるようにして、再生開始時に可能な限り高画質の符号化データの画像から再生できるようにするものである。
 本開示の第1の側面の情報処理装置は、MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記サーバの機能を実現する情報処理装置において、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記クライアントに送信する送信部を含む。
 前記送信部の動作を制御する通信制御部をさらに含ませるようにすることができ、前記通信制御部には、前記コンテンツデータの再生開始時において、前記送信部により送信された前記部分画像の、前記クライアントにおける再生状態に基づいて、前記送信された前記部分画像と同一の前記部分画像であって、種別の異なる符号化データからなるセグメントデータを、前記送信部を制御して、前記クライアントに送信させるようにすることができる。
 前記クライアントからのデータを受信する受信部をさらに含ませるようにすることができ、前記通信制御部には、前記受信部を制御して、前記クライアントからの前記同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータの受信が可能であることを示す受信可能情報を受信するとき、前記受信可能情報が受信できる前記クライアントに対して、前記送信部を制御して、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記クライアントに送信させるようにすることができる。
 本開示の第1の側面の情報処理方法は、MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記サーバの機能を実現する情報処理装置の情報処理方法において、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記クライアントに送信するステップを含む。
 本開示の第1の側面のプログラムは、MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記サーバの機能を実現する情報処理装置を制御するコンピュータに、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記クライアントに送信するステップを含む処理を実行させる。
 本開示の第1の側面においては、MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記サーバの機能を実現する情報処理装置において、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータが前記クライアントに送信される。
 本開示の第2の側面の情報処理装置は、MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記クライアントの機能を実現する情報処理装置において、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記サーバより受信する受信部と、前記受信部により受信した部分画像の符号化データからなるセグメントデータをバッファリングするバッファリング部と、前記バッファリング部にバッファリングされた部分画像の符号化データからなるセグメントデータを再生する再生部とを含み、前記バッファリング部は、前記受信部により受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを破棄し、前記受信部により受信された部分画像の符号化データからなるセグメントデータをバッファリングする。
 前記再生部には、前記受信部により受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを再生させるようにすることができる。
 前記サーバにデータを送信する送信部と、前記送信部の動作を制御する通信制御部をさらに含ませるようにすることができ、前記通信制御部には、前記再生部による前記セグメントデータの再生状態を示す情報を、前記送信部を制御して、前記サーバに送信させるようにすることができる。
 前記通信制御部には、前記送信部を制御して、前記クライアントからの前記同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータの受信が可能であることを示す受信可能情報を前記サーバに送信させるようにすることができる。
 本開示の第2の側面の情報処理方法は、MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記クライアントの機能を実現する情報処理装置の情報処理方法において、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記サーバより受信し、受信した部分画像の符号化データからなるセグメントデータをバッファリングし、バッファリングされた部分画像の符号化データからなるセグメントデータを再生するステップを含み、受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを破棄し、受信された部分画像の符号化データからなるセグメントデータをバッファリングする。
 本開示の第2の側面のプログラムは、MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記クライアントの機能を実現する情報処理装置を制御するコンピュータに、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記サーバより受信し、受信した部分画像の符号化データからなるセグメントデータをバッファリングし、バッファリングされた部分画像の符号化データからなるセグメントデータを再生するステップを含み、受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを破棄し、受信された部分画像の符号化データからなるセグメントデータをバッファリングする処理を実行させる。
 本開示の第2の側面においては、MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記クライアントの機能を実現する情報処理装置であって、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータが前記サーバより受信され、受信した部分画像の符号化データからなるセグメントデータがバッファリングされ、バッファリングされた部分画像の符号化データからなるセグメントデータが再生され、受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータが破棄されて、受信された部分画像の符号化データからなるセグメントデータがバッファリングされる。
 本開示の第3の側面においては、MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する前記サーバおよび前記クライアントの機能を実現する第1および第2の情報処理装置からなる配信システムであって、前記第1の情報処理装置により、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータが前記第2の情報処理装置に送信され、前記第2の情報処理装置により、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータが前記第1の情報処理装置より受信され、受信した部分画像の符号化データからなるセグメントデータがバッファリングされ、前記バッファリング部にバッファリングされた部分画像の符号化データからなるセグメントデータを再生する再生部とを含み、前記バッファリング部は、前記受信部により受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータが破棄され、受信された部分画像の符号化データからなるセグメントデータがバッファリングされる。
 本開示の一側面によれば、動画再生における操作性を向上することができる。
MPEG-DASHの概要を説明する図である。 MPDの構成例を示す図である。 コンテンツの時間的区切りを説明する図である。 MPDにおけるPeriod以下の階層構造の例を示す図である。 MPDファイルの構成例を時間軸上で説明する図である。 配信システムの主な構成例を示すブロック図である。 従来のHTTPとウェブソケット(WebSocket)とのそれぞれにおけるサーバ-クライアント間のセグメントデータの転送方法を説明する図である。 従来のHTTPとウェブソケット(WebSocket)とのそれぞれにおけるサーバ-クライアント間のセグメントデータの帯域適応ロジックを適用した場合の転送方法を説明する図である。 DASHに適用されるウェブソケットのサブフレームのプロトコルについて説明する図である。 dashのコントロールデータのシンタックスを説明する図である。 コントロールデータを送信するサブフレームに用いられるオペレーションコードの一覧を示す図である。 オペレーションコードopenMediaのシンタックスを説明する図である。 オペレーションコードmediainfoのシンタックスを説明する図である。 オペレーションコードcloseMediaのシンタックスを説明する図である。 オペレーションコードplayStreamのシンタックスを説明する図である。 オペレーションコードStreamInfoのシンタックスを説明する図である。 オペレーションコードstopStreamのシンタックスを説明する図である。 オペレーションコードchangeMediaのシンタックスを説明する図である。 オペレーションコードplayerInfoのシンタックスを説明する図である。 オペレーションコードcapabilityのシンタックスを説明する図である。 オペレーションコードpreferenceのシンタックスを説明する図である。 VOD再生を開始させるシーケンスを説明するタイミングチャートである。 VOD再生を中断し、再開させるシーケンスを説明するタイミングチャートである。 VOD再生を最後まで再生し、終了するシーケンスを説明するタイミングチャートである。 ライブの最初から視聴する場合におけるライブ再生を開始させるシーケンスを説明するタイミングチャートである。 ライブの途中から視聴する場合におけるライブ再生を開始するシーケンスを説明するタイミングチャートである。 サーバの機能を実現する機能ブロック図である。 クライアントの機能を実現する機能ブロック図である。 Multiple Representations Transfer at startupのシーケンスを説明するタイミングチャートである。 Multiple Representations Transfer at startupのシーケンスを説明する図である。 Low delay Transfer by Sub-Segmentのシーケンスを説明するタイミングチャートである。 Low delay Transfer by Sub-Segmentのシーケンスを説明する図である。 ライブ再生でネットワーク輻輳が発生した場合に行われるシーケンスを説明するタイミングチャートである。 複数のメディアを切り替えて再生させるシーケンスを説明するタイミングチャートである。 複数のメディアを切り替えて再生させるシーケンスを説明するタイミングチャートである。 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
 以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
 1.概要
 2.第1の実施の形態(MPEG-DASH over WebSocket)
 3.第2の実施の形態(Multiple Representations Transfer at startup)
 4.第3の実施の形態(Low delay Transfer by Sub-Segment)
 5.第4の実施の形態(Auto Segment Skip for Live Streaming)
 6.第5の実施の形態(Fast Switching of multiple media)
 7.第6の実施の形態(コンピュータ)
 <1.概要>
  <DASH>
 従来、HTTP(HyperText Transfer Protocol)を利用したコンテンツ配信技術として、例えば、非特許文献1に記載のように、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)がある。MPEG-DASHでは、同一コンテンツが異なるビットレートで表現された複数の符号化データをコンテンツサーバに格納し、クライアントが、ネットワーク帯域に応じて複数の符号化データのいずれかの符号化データを選択しながら再生するABS(Adaptive Bitrate Streaming)技術が採用されている。
 DASHによるコンテンツの伝送の手順を、図1を参照して説明する。まず、コンテンツを取得する側の動画再生端末において、ストリーミング・データの制御用ソフトウエアが、所望のコンテンツのMPD(Media Presentation Description)ファイルを選択し、Webサーバから取得する。MPDは、配信する動画や音声等のコンテンツを管理するメタデータである。
 MPDを取得すると、動画再生端末のストリーミング・データの制御用ソフトウエアは、そのMPDを解析し、所望のコンテンツの、通信回線の品質や動画再生端末の性能等に合ったデータ(DASHセグメント)をWebサーバから取得するように制御する。HTTPアクセス用のクライアント・ソフトウエアは、その制御に従って、そのDASHセグメントを、HTTPを用いてWebサーバから取得する。このように取得されたコンテンツを、動画再生ソフトウエアが再生する。
 MPDは、例えば図2に示されるような構成を有する。MPDの解析(パース)においては、クライアントは、MPD(図2のMedia Presentation)のピリオド(Period)に含まれるリプレゼンテーション(Representation)の属性から最適なものを選択する。
 クライアントは、選択したリプレゼンテーション(Representation)の先頭のセグメント(Segment)を読んでイニシャライズセグメント(Initialization Segment)を取得し、処理する。続いて、クライアントは、後続のセグメント(Segment)を取得し、再生する。
 なお、MPDにおける、ピリオド(Period)、リプレゼンテーション(Representation)、およびセグメント(Segment)の関係は、図3のようになる。つまり、1つのメディアコンテンツは、時間方向のデータ単位であるピリオド(Period)毎に管理することができ、各ピリオド(Period)は、時間方向のデータ単位であるセグメント(Segment)毎に管理することができる。また、各ピリオド(Period)について、ビットレート等の属性の異なる複数のリプレゼンテーション(Representation)を構成することができる。
 したがって、このMPDのファイル(MPDファイルとも称する)は、ピリオド(Period)以下において、図4に示されるような階層構造を有する。また、このMPDの構造を時間軸上に並べると図5の例のようになる。図5の例から明らかなように、同一のセグメント(Segment)に対して複数のリプレゼンテーション(Representation)が存在している。クライアントは、これらのうちのいずれかを適応的に選択することにより、通信環境や自己のデコード能力などに応じて適切なストリームデータを取得し、再生することができる。
  <配信システム>
 次に、以上のような本技術を実現する装置とその方法について説明する。図6は、本技術を適用したシステムの一態様である、配信システムを示す図である。図6に示される配信システム100は、全体画像の一部である部分画像のデータを適応的に配信することができるシステムである。
 図6に示されるように配信システム100は、配信データ生成装置101、配信サーバ102、および端末装置103を有する。
 配信データ生成装置101は、配信サーバ102が配信する、例えば画像や音声等のコンテンツのファイル(コンテンツファイル)とそのMPDファイルを生成し、それを配信サーバ102に供給する。配信サーバ102は、配信データ生成装置101から供給されたコンテンツファイルとそのMPDファイルを、ネットワーク104に向けて公開し、部分画像の適応的な配信を行う。
 端末装置103は、ネットワーク104を介して配信サーバ102にアクセスし、配信サーバ102が公開する所望のコンテンツのMPDファイルを取得する。
 端末装置103は、そのMPDファイルに従って、ネットワーク104を介して配信サーバ102にアクセスし、MPDファイルに対応する適切なコンテンツファイルを適応的に選択し、それをHTTPプロトコルにより取得する。端末装置103は、取得したコンテンツファイルを再生する。
 <2.第1の実施の形態>
  <MPEG-DASH over WebSocket>
 次に、図7を参照して、従来のHTTPとウェブソケット(WebSocket)とのそれぞれにおけるサーバ-クライアント間のセグメントデータ(図中のSeg.Data)の転送方法について説明する。尚、図7におけるサーバ201は、上述した図6の配信サーバ102に対応するものであり、クライアント202は、上述した図6の端末装置103に対応するものである。
 サーバ201およびクライアント202間における、HTTPによるセグメントデータの転送は、図7のAで示されるような処理となる。尚、ここでは、デコードの開始時に3個のセグメントデータ(Seg.Data)単位でバッファリングがされるものとする。
 すなわち、クライアント202において、まず、再生が指示されると(PlayStart)、Getコマンドからなる要求(図7のAの3段目のクライアント202の先頭のReq.)がサーバ201に対して送信される。
 次に、サーバ201が、このGetコマンドに応じて、応答(図7のAの3段目のクライアント202の先頭のResp.)としてMPDをクライアント202に送信する。
 クライアント202は、このMPDの情報に基づいて、順次、セグメントデータ(Seg.Data)をサーバ201に対して要求(図7のAの3段目のクライアント202の2番目以降のReq.)する。
 サーバ201は、この要求に応じて、セグメントデータ(Seg.Data)をクライアント202に対して送信(図7のAの3段目のサーバ201の2番目以降のResp.)する。
 ここで、クライアント202が、サーバ201に対してセグメントデータ(Seg.Data)を要求して、サーバ201がセグメントデータ(Seg.Data)をクライアント202に送信する際、図7のAの2段目で示されるように、PlayStartのタイミングからクライアント202により再生が開始される(DecStart)タイミングまでに遅延時間(Delay to Rendering)が発生する。
 尚、図7のAにおいては、最上段において、サーバ201-クライアント202間が接続されていることが示されており、中段においては、再生が要求されたタイミング(Play Start)から再生が実際に開始されるタイミング(DecStart)までの遅延時間(Delay to Rendering)が示されている。さらに、図7のAの最下段においては、パイプ状に描かれた通信回線上をセグメントデータ(Seg.Data)が転送される様子が図中右方向に時系列に描かれている。また、図7のAにおいては、パイプ状の通信回線の上側がクライアント(Client)202側の動作タイミングを示しており、下側がサーバ(Server)201側の動作タイミングを示している。さらに、以降において、図7のBおよび図8においても同様の記載である。
 すなわち、従来のHTTPにおいて、サーバ201-クライアント202間は、いわゆるPull回線となるため、トランザクション間にGAPが生じ、複数ファイルの読み出しに時間がかかる。特に、毎回、TCPコネクションした場合、オープンの遅延やフロー制御のスロースタートの為、さらに時間がかかる。
 結果として、再生開始時に、十分なデータをバッファリングするため再生画像が表示されるまでの時間が遅く、転送スループットが上がらないので、低いビットレートのビデオが選択されることになるので、常に低画質の画像が転送される恐れがある。
 これに対して、サーバ201およびクライアント202間における、ウェブソケットによるセグメントデータの転送は、図7のBで示されるような処理となる。
 すなわち、クライアント202において、まず、再生が指示されると(PlayStart)、Getコマンドからなる要求(図7のBの3段目のクライアント202の先頭のCommand Send)がサーバ201に対して送信される。
 次に、サーバ201は、このGetコマンドに応じて、応答(図7のBの3段目のクライアント202の先頭のData(MPD))としてMPDと共に、セグメントデータ(Seg.Data)をクライアント202に対して順次送信(図7のBの3段目のサーバ201の2番目以降のSeg.Data)する。
 ここでも、クライアント202が、サーバ201に対してセグメントデータ(Seg.Data)を要求して、サーバ201がセグメントデータ(Seg.Data)をクライアント202に送信する際、図7のBの2段目で示されるように、PlayStartのタイミングからクライアント202により再生が開始される(DecStart)タイミングまでに遅延時間(Delay to Rendering)が発生するものの、HTTPの場合よりも短い。
 すなわち、ウェブソケットにおいては、サーバ201-クライアント202間は、いわゆるPush回線となるため、トランザクション間にGAPが生じず、複数ファイルの読み出しにかかる時間を短縮することができる。特に、同一のTCPセッションでの転送となるため、コネクションに関わる問題も発生しない。
 結果として、再生開始時の画像が表示されるまでの時間を短縮することが可能となり、転送スループットを上げることができるので、高めのビットレートのビデオを選択でき、再生の開始から比較的高画質の画像を転送することが期待できる。
 ただし、HTTPにおいても、帯域適応ロジックであるPipeliningがサポートされている場合を考えると、上述した図7のAにおける処理よりも遅延時間を短縮することが可能である。Pipeliningとは、クライアント202が、帯域の状態を判断し、帯域に応じて、サーバ201に対して、一度に複数の要求をすることができ、これに応じて、クライアント202は、サーバ201からまとめて要求に応じたデータを受信できる機能である。
 すなわち、図8のAで示されるように、サーバ201からのMPDによる応答があった後のタイミングで、クライアント202は、サーバ201に対して、3個のセグメントデータを同時に要求することにより、サーバ201から、まとめて3個のセグメントデータを受信するというものである。
 このようにすることで、図7のAで示されるような要求を出してから応答を受信するまでのGapを省くことができ、遅延時間(Delay to Rendering)を短縮することが可能となる。
 しかしながら、リクエストへのレスポンスが返ってくる前に、次のセグメントデータのリクエストをすることになるので、進行中のトランザクションの帯域をモニタし、その結果から状況により異なるリプレゼンテーション(Representation)を選択して、次のセグメントデータの要求に反映させることができない。このため、進行中のトランザクション結果は、3個後のセグメントのリクエストにしか反映させることができない。
 すなわち、例えば、図8のAで示されるように、クライアント202側で帯域の判断をするため、最初の要求を送った後のタイミングで、実際には、十分な帯域があるにも関わらず、次の要求を送信するまでの間、3個の低画質のセグメントデータをサーバ201から受信しなければならない。尚、図8のAの最下段におけるSeg.Data(rep1)およびSeg.Data(rep3)は、それぞれリプレゼンテーションが異なるセグメントデータを示しており、rep3は、rep1よりも高画質のリプレゼンテーションのセグメントデータであることを示している。すなわち、図8のAの最下段においては、最初の要求に対して、低画質の3個のセグメントデータ(Seg.Data(rep1))が送信された後に、高画質のセグメントデータ(Seg.Data(rep3))が送信されることが示されている。
 これに対して、ウェブソケットにおいては、サーバ201が帯域の状態を判断してセグメントデータのリプレゼンテーションを切り替えることができる。このため、図8のBで示されるように、サーバ201が帯域に応じた判断をするため、1個目のセグメントデータを送った直後のタイミングにでも、帯域の状態に応じて、異なるリプレゼンテーションのセグメントデータを送信することができる。すなわち、図8のBの最下段においては、先頭で低画質のセグメントデータ(Seg.Data(rep1))が送信された直後に、高画質のセグメントデータ(Seg.Data(rep3))が送信されることが示されている。
 結果として、帯域の状態に応じて、迅速で、かつ適切なリプレゼンテーションのセグメントデータを切り替えて送信することが可能になると共に、クライアント202側の実装内容を簡易なものとすることが可能となる。
  <ウェブソケットのサブフレームのプロトコル>
 また、ウェブソケットでは、フレーム(Frame)と呼ばれる単位で、データの送受信が行われる。
 そこで、次に、図9を参照して、DASHに適用されるウェブソケットのサブフレームのプロトコルについて説明する。
 図9の左側には、ウェブソケットのベースフレーミングプロトコルと、サブフレームのヘッダ部分に記述されるオペレーションコード(operation code , opcode)との例が示されている。
 サブフレームのヘッダ部分には、オペレーションコードの他、例えば、このサブフレームがデータの終わりなのかどうかを示すFINや、データがマスク化されているかどうかを示すMASK、アプリケーションデータの長さを示すPayload lenなどが記述される。
 また、オペレーションコードが0である場合、接続を継続するのに用いられるサブフレーム(Continuation Frame)であることを示しており、オペレーションコードが1である場合、テキストデータ用のサブフレーム(Text Frame)であることを示している。また、オペレーションコードが2である場合、バイナリデータ用のサブフレーム(Binary Frame)であることを示しており、オペレーションコードが8である場合、接続終了を行うサブフレーム(Connection Close Frame)であることを示している。また、オペレーションコードが9である場合、接続維持できているかを確認するのに用いられるサブフレーム(Ping Frame)であることを示している。また、オペレーションコードが10である場合、Ping Frameに対する応答に用いられるサブフレーム(Pong Frame)であることを示している。
 そして、ウェブソケットをDASHに適用する場合、図9の右側に示すように、サブフレームのペイロード部分に、テキストフレームとして送信されるコントロールデータと、バイナリフレームとして送信されるセグメントデータとの2つのデータが規定される。
 例えば、コントロールデータは、軽量なデータ記述言語の1つであるジェイソン(JSON:JavaScript(登録商標) Object Notation)により記述されるJSON Dataより構成される。また、セグメントデータ(Segment Data)は、ISO/IEC 14496-12(MPEG-4)の規格に従って記述されたデータより構成される。
 このように、DASHにウェブソケットを適用する際、コントロールデータとセグメントデータとを共通のサブフレームのペイロード部分に混在させず、それぞれが個別のサブフレームのペイロード部分に配置される。
 これにより、コントロールデータが遅延されて伝送されることを回避することができる。即ち、セグメントデータはデータ量が大きいため、伝送が遅れてしまうことがあり、コントロールデータをセグメントデータと混在させた場合には、混在させたデータの全てを読み取った後でなければコントロールデータを認識することできない。このため、コントロールデータが認識されるまでに遅延時間が発生することが想定される。これに対し、コントロールデータとセグメントデータとを個別のサブフレームのペイロード部分に配置すると、セグメントデータを送信する前に、比較的小さなコントロールデータを送信するようにすることができるので、コントロールデータが認識されるまでに発生する遅延時間を短縮して伝送することができる。
 また、HTML5のウェブソケットAPIにて、受信したセグメントデータを、JavaScript(登録商標)でパースせずにそのままMSEのソースバッファに追加(Append)することができる。
 次に、図10乃至図21を参照して、コントロールデータについて説明する。
 図10には、ジェイソンにより記述されたコントロールデータのシンタックス(syntax)が示されている。
 図10の例では、プロトコルのIDがdashであり、プロトコルのバージョンが0.2であることが示されている。また、タイムスタンプ(図10の例では、1403627982268)は、アプリケーション層以下で発生する伝送遅延を補正することができる。
 また、例えば、1つのサブフレームに、複数のコントロールデータをまとめて送信することができる。これにより、受信した側は、一括処理を容易に行うことができる。即ち、図10の例では、コントロールデータとして、capability,openMedia,playStreamのオペレーションコードがまとめて記述されている。
 図11には、コントロールデータを送信するサブフレームに用いられるオペレーションコードの一覧が示されている。
 openMediaは、MPDのURLを指定して、サーバにメディアのセグメントをストリームできる状態にするためのオペレーションコードであり、クライアントからサーバに送信される。例えば、openMediaは、図12に示すように記述され、1行目の“opcode”:“openMedia”は、MPDのURLを指定して、サーバにメディアのセグメントをストリームできる状態にするためのオペレーションコードであることを表している。URL(図12の例では、“http://cdn.example/movies/134532.mpd“)によりMPDを指定する。そして、openMediaを受信したサーバは、指定されたMPDをオープンして、mediaInfoをクライアントに送り返す。
 mediaInfoは、openMediaを受信した直後、もしくは、メディアの情報が更新された場合に送信されるオペレーションコードであり、サーバからクライアントに送信される。
 例えば、mediaInfoは、図13に示すように記述され、1行目の“opcode”:“mediaInfo”は、openMediaを受信した直後、もしくは、メディアの情報が更新された場合に送信されるオペレーションコードであることを表している。また、2行目以降においては、対象となるメディアがmediaDescriptor(図13の例では、152736)により指定される。また、networkStateによりHTML5 Videoにおいて定義されるようにネットワークの動作状態(アクティビティ)(図13の例では、4)が指定される。また、readyStateにより、対象となるメディアの準備状態(図13の例では、4)が指定される。さらに、URL(図13の例では、“http://cdn.example/movies/134532.mpd“)によりMPDが指定される。
 closeMediaは、openMediaでサーバが確保したリソースを解放するためのオペレーションコードであり、クライアントからサーバに送信される。例えば、closeMediaは、図14に示すように記述され、“opcode”:“closeMedia”により、openMediaでサーバが確保したリソースを解放するためのオペレーションコードであることを表している。クローズにするメディアがmediaDescriptor(図14の例では、152736)により指定される。
 playStreamは、ストリームを開始し、オープンされているメディアを指定するためのオペレーションコードであり、クライアントからサーバに送信される。
 例えば、playStreamは、図15に示すように記述される。
 より詳細には、1行目の“opcode”:“playStream”は、ストリームを開始し、オープンされているメディアを指定するためのオペレーションコードであることを表している。
 2行目以降においては、streamDescriptorで指定された(図15の例では、4323)ストリームにおける、mediaDescriptorで指定したメディア(図15の例では、152736)のsegmentNumberで指定されたセグメント番号のセグメント(図15の例では、155)からnumSegmentにより指定されたセグメント数(図15では1000)分のストリームを開始する。また、VOD(Video On Demand)の場合はメディアの最初のセグメントからストリームを開始し、Liveの場合は現在の最新のセグメントからストリームを開始する。
 streamInfoは、ストリームの状態、次に伝送されるセグメントデータの属性を通知するためのオペレーションコードであり、サーバからクライアントに送信される。
 例えば、streamInfoは、図16に示すように記述される。また、streamInfoは、定期的に伝送され、このコントロールデータの後に伝送されるセグメントデータの属性情報を示す。
 より詳細には、1行目の“opcode”:“StreamInfo”は、ストリームの状態、次に伝送されるセグメントデータの属性を通知するためのオペレーションコードであることを表している。
 また、2行目以降においては、対象となるストリームがstreamDescriptor(図16の例では4323)により指定される。また、対象となるメディアがmediaDescriptor(図13の例では、1527364235312)により指定される。さらに、networkStateによりHTML5 Videoにおいて定義されるようにネットワークの動作状態(アクティビティ)(図16の例では4に)が指定される。また、readyStateにより、対象となるメディアの準備状態(図16の例では、4)が記述される。
 multipleRepresentationにより、同一のセグメントデータに対して複数のリプレゼンテーションが送信されてくる可能性があるか否かが指定される。図16の例では“true”とされて、同一のセグメントデータに対して複数のリプレゼンテーションが送信されてくる可能性があることが指定されている。クライアントはその場合、次のStreamInfoの受信を待ってから、現在のSegmentデータを利用するか破棄するかを決める。尚、“false”とされるとき、同一のセグメントデータに対して複数のリプレゼンテーションが送信されてくることがないことが指定される。
 segmentSkippedにより、Live配信などの際、実時間に対して再生が遅れてしまったセグメントの配信をスキップさせる、セグメントスキップがなされる可能性があるか否かが指定され、図16の例では、“false”とされて、セグメントスキップがなされる可能性がないことが指定されている。尚、“true”とされる場合、セグメントスキップがなされる可能性があることが指定される。
 minBufferTimeにより、バッファリングの最小時間が指定されており、図16においては、“4.00”により4秒であることが指定されている。
 minNetworkBufferTimeにより、クライアントがどのくらいのデータをバッファリングしてからデコードを開始すればよいという奨励値が指定されており、図16においては、“5.00”により5秒分であることが指定されている。
 すなわち、サーバは、MinNetworkBufferDurationにより、クライアントがどのくらいのデータをバッファリングしてからデコードを開始すればよいという奨励値として指定し、ネットワークの状態などから判断して、帯域変動でクライアントのバッファが枯渇し、再生が停止しないよう、ストリーム開始時にstreamInfoを(シグナリング)送信する。
 segmentにより、セグメントデータが指定され、このうち、presentationTimeによりセグメントデータの時刻が指定され、図16においては“331533”がミリ秒単位で指定される。また、“periodID”により、再生開始位置が指定され、図16においては、“1”と指定され、先頭ピリオドからの再生が指定されている。
 さらに、“adaptationSetID”によりセグメントデータの種別が指定されて、図16においては“video”が指定されている。また、representationIDによりリプレゼンテーションの種別が指定され、図16の例では“rep4”が指定されている。segmentNumber”によりセグメントデータの番号が指定され、図16において、“1324”が指定されている。尚、もし、これらのセグメントを指定する情報が無い場合、対象となるセグメントは、初期化された先頭のセグメントとされる。
 “SAPType”により、セグメントやサブセグメントなどの離プレゼンテーションが変化する先頭位置SAP(Stream Access Point)の種別が指定される。SAP TypeはつまりSegmentのSubSegmentの先頭のピクチャーがClosed GOPやOpen GOPの先頭のピクチャーであるなどのSAPの種類が記述Type1から6まで定義されており、図16の例では、1が指定されている。
 subsegmentNumberにより、1のセグメントデータを構成するサブセグメントを識別する番号が指定され、図16においては、“0”が指定されている。尚、サブセグメントを識別する番号については、サブセグメントが3個で1のセグメントデータを構成するような場合、図16の例で示されるように、1番目のサブセグメントであれば、“0”であり、2番目のサブセグメントであれば“1”となり、3番目のサブセグメントであれば“2”とするようにしてもよい。
 すなわち、Segment Dataを分割してSubSegmentとして伝送可能にするため、サーバは、SAPTypeおよびSubSegmentNumberをシグナリング(送信)する。
 このように、サブセグメントを定義することにより、StopStream、およびChangeMediaにおいて、サーバは、SubSegmentの途中でストリームを停止することができる。これにより、不要なSegment Dataを伝送しないで、StopStreamにより、即座にストリームを停止することができ、ChangeMediaを低遅延で実現することができる。さらに、ChangeMediaでは切り替えたMediaをSubSegmentからストリームすることで、更に高速に切り替えることが可能となる。
 stopStreamは、ストリームを停止するためのオペレーションコードであり、クライアントからサーバに送信される。
 例えば、stopStreamは、図17に示すように記述され、対象となるストリームとしてstreamDescriptor(図16の例では4323)により指定されたストリームの停止が指示される。
 より詳細には、1行目の“opcode”:“stopStream”は、ストリームの停止を指示するオペレーションコードであることを表しており、2乃至4行目の“params” : { “streamDescriptor”: “4323” }は、停止するストリームを指定するパラメータを表している。
 changeMediaは、ストリームをされるメディアを変えるものであり、オープンされているMediaを指定し、ストリームを止めることなく切り替える。changeMediaは、クライアントからサーバに送信される。
 例えば、changeMediaは、図18に示すように記述される。
 1行目の“opcode” : “changeMedia”は、変更後に再生するストリームするメディアを指定するオペレーションコードであることを表している。2乃至7行目の“params”: {“streamDescriptor” : “4323”, “mediaDescriptor” : “152736”,“segmentNumber” : “155”, “numSegment” : “1000”}は、それぞれ、複数のストリームを指定するパラメータ、切り替えるメディアを指定するパラメータ、セグメント番号を指定するパラメータ、およびメディアのエンドが存在しない場合におけるセグメントの数を指定するパラメータを表している。
 このように、予め複数のメディアをサーバにオープンの状態にしておき、直ちにセグメントをストリームできる状態にしておくことで、図34および図35を参照して後述するように、メディアを切り替えた直後に、別のセグメントを伝送することができる。また、上述したOpenMediaおよびCloseMediaによって、サーバが保持するメディアに関するリソースが管理される。
 playerInfoは、ストリームを再生中のプレイヤーの再生状況を通知するためのオペレーションコードであり、クライアントからサーバに送信される。
 例えば、playerInfoは、図19に示すように記述され、プレイヤーの再生状況に変化があれば通知される。
 1行目の“opcode” : “playerInfo”は、プレイヤーの再生状況を通知するオペレーションコードであることを表している。2乃至8行目の“params”: { “streamDescriptor”: “4323”,“networkState” : “4”, “readyState” : “4” “currentPresentationTime” : “478777”, “bufferedTime” : “4000”}は、それぞれ、ストリームを識別するパラメータ、ネットワーク状況を表すパラメータ、読み込み状況を表すパラメータ、現在の再生時間をミリ秒で表すパラメータ、バッファされている時間をミリ秒で表すパラメータを表している。
 このように、サーバは、playerInfoに含まれるcurrentPresentationTimeを利用して、ライブでクライアントがリアルタイムに再生できていないことを感知することができる。これにより、図33を参照して後述するように、サーバは、再生されない不要なセグメントはスキップして、ライブの最新のセグメントを継続して転送することができる。
 capabilityは、例えば、コーデックなど、クライアンのケーパビリティを通知するためのオペレーションコードであり、クライアントからサーバに送信される。
 例えば、capabilityは、図20に示すように記述される。
 すなわち、1行目の“opcode” : “capability”は、例えば、コーデックなど、クライアントのケーパビリティを通知するためのオペレーションコードであることを表している。2行目以降においては、multipleRepresentationにより、クライアントが、同一のセグメントデータについて、複数のRepresentationを受け入れることが可能であるか否かが指定される。例えば、図20においては、“true”とされて、同一のセグメントデータについて、複数のRepresentationを受け入れることが可能であることが指定されている。尚、“false”とされる場合、同一のセグメントデータについて、複数のRepresentationを受け入れることができないことが指定される。
 segmentSkipにより、セグメントスキップに対応可能であるか否かが指定され、例えば、図20においては“false”とされて、セグメントスキップに対応可能ではないことが指定されている。尚、“true”とされた場合、セグメントスキップに対応可能であることが指定されている。
 decodeにより、対応可能なデコードの種別が指定され、mimeTypeによりmimeタイプが指定され、図20においては、“video/mp4”とされ、mp4のビデオのデコードが可能であることが指定されている。また、codecによりコーデックの種別として[“avc1.640828”]が可能であると指定されている。このときmaxWidth、maxHieght、およびmaxBandwidthにより、処理可能な画像の最大幅、最大高、および最大バンド幅が指定され、図20においては、それぞれ“1920”,“1080”,“101024”とされて、1920画素×1080画素のバンド幅が101024となる画像を処理可能であることが指定されている。
 また、segmentAlignment!により、リプレゼンテーションのセグメントがそろっているか否かが指定され、図20においては、falseとされており、各リプレゼンテーションのセグメントがそろっていることが指定されている。尚、trueの場合、各リプレゼンテーションのセグメントがそろっていないことが指定される。
 さらに、SAPTypeにより、セグメントの先頭位置SAP(Stream Access Point)の種別が指定され、図20の場合、SAPの種別が1または2のいずれかであることが指定されている。
 また、図20においては、さらなる対応可能なmimeタイプとして“audiomp4”が指定されて、音声のmp4がデコード可能であることが指定されている。さらに、コーデックの種別として[“mp4a.40”]が指定され、segmentAlignment!により、リプレゼンテーションのセグメントがそろっているか否かが指定され、図20においては、falseとされており、各リプレゼンテーションのセグメントがそろっていることが指定されている。
 preferenceは、例えば、AdaptationSetIDなど、クライアントのプリファレンス(優先的にして欲しい設定)を通知するためのオペレーションコードであり、クライアントからサーバに送信される。
 例えば、preferenceは、図21に示すように記述される。
 すなわち、1行目の“opcode” : “preference”は、クライアントのプリファレンス(優先的にして欲しい設定)を通知するためのオペレーションコードであることを表している。2行目以降においては、mediaDescriptorにより、対象となるメディアがmediaDescriptor(図21の例では、152736)により指定される。segmentSkipにより、対象となるメディアに対してセグメントスキップをしない状態か否かが指定され、図21においては、“false”によりセグメントスキップをしない状態を設定するように求められていることが指定されている。
 languageにより、使用する言語が指定され、図21の場合、[“en”,“fr”]により英語とフランス語の使用を優先的に設定するように求められていることが指定されている。
 segmentにより、セグメントデータに対する設定についてのプリファレンスが指定され、このうち1番目のperiodIDにより画像の再生開始位置が指定され、図21の場合、“1”とされ、画像の再生開始位置として先頭ピリオドを優先的に設定するように求められていることが指定されている。
 1番目のadaptationSetIDにより、セグメントデータの画像種別が指定され、図21の場合、“mainVideo”により主画像が優先的に設定されるように求められていることが示されている。
 1番目のreprsentationIDにより、画像のリプレゼンテーションの種別が指定され、図21においては、[“1”, “2”, “3”]とされ、reprsentationの種別として、1乃至3のいずれかとするように優先的に設定するように求められていることが示されている。尚、この場合、リプレゼンテーションの種別としては3種類が指定されることになるが、サーバは、この3種類のリプレゼンテーションのうち、帯域の状態を判断して、最適なリプレゼンテーションを設定する。
 さらに、2番目のperiodIDにより、音声の再生開始位置が指定され、図21の場合、“1”とされ、音声の再生開始位置として先頭ピリオドを優先的に設定するように求められていることが指定されている。
 2番目のadaptationSetIDによりセグメントデータの音声種別が指定され、図21の場合、“mainAudio”により主音声が優先的に設定するように求められていることが示されている。
 さらに、2番目のreprsentationIDにより、音声のリプレゼンテーションの種別が指定され、図21においては、[“1”]とされ、音声のリプレゼンテーションの種別として、1とするように優先的に設定するように求められていることが示されている。
 すなわち、preferenceにより、MediaのどのMediaSegmentをストリームするかクライアントのプリファレンスが指定される。(なにも指定しない場合はサーバがクライアントのCapabilityに合わせて自動で選択する)
 尚、representationIDがArrayの場合で複数指定されている場合、サーバは、Network Adaptation(ネットワークの状態に応じた処理)を実行し、その範囲にて、帯域適応等のサーバの判断にて適切なリプレゼンテーションを選択しストリームする。
 このようなコントロールデータが、サーバ201およびクライアント202の間で送受信され、コンテンツファイルの配信が制御される。
 図22には、VOD再生を開始させるシーケンスが示されている。
 例えば、ユーザが、VOD再生を開始するようにクライアント202に対する操作を行うと処理が開始される。ステップS11において、クライアント202は、コントロールデータ(capability,openMedia,playStream)をサーバ201送信し、クライアント202のケーパビリティを通知するとともに、メディアを指定してストリームを開始するように要求する。
 サーバ201は、この要求に従って、クライアント202により指定されたメディアのメディア情報を読み出し、ステップS12において、コントロールデータ(mediaInfo)をクライアント202に送信することでメディア情報を返信する。
 そして、サーバ201は、ステップS13において、コントロールデータ(streamInfo)をクライアント202に送信して、次に伝送されるセグメントデータの属性を通知する。続いて、サーバ201は、ステップS14において、セグメントデータ(RepID 1,SegmentNo 0)をクライアント202に送信する。
 クライアント202は、このセグメントデータを受信してデコードを開始し、ステップS15において、コントロールデータ(playerInfo)をサーバ201に送信することで、ストリームのデコードを開始してからの経過時間を通知する。
 その後、サーバ201は、セグメントデータを順次、クライアント202に送信する。このとき、サーバ201は、ネットワークの状態に応じた処理(Network Adaption)により、リプレゼンテーション(Rep)を変えるPlayerInfoでCurrentPresentanTimeからクライアントのバッファ量を推測することで、適切な帯域適応をすることができる。
 これにより、例えば、サーバ201は、ステップS16において、コントロールデータ(streamInfo)を送信し、ステップS17において、セグメントデータ(RepID 3,SegmentNo 1)を送信する。続いて、サーバ201は、ステップS18において、コントロールデータ(streamInfo)をクライアント202に送信し、ステップS19において、セグメントデータ(RepID 3,SegmentNo 2)を送信する。
 また、サーバ201は、Transmission Controlにより、クライアント202の再生進行に合わせてセグメントデータを送り続けることができる。即ち、サーバ201は、クライアント202の再生進行に合わせたタイミングで、ステップS20において、コントロールデータ(streamInfo)をクライアント202に送信し、ステップS21において、セグメントデータ(RepID 3,SegmentNo 3)を送信する。
 一方、クライアント202は、再生状況の変化があると、ステップS22において、コントロールデータ(playerInfo)をサーバ201に送信し、ストリームのデコードを開始してからの経過時間を通知する。
 このように、VOD再生を開始する処理が行われ、以下同様に、サーバ201からクライアント202にセグメントデータが送信される。
 図23には、VOD再生を中断し、再開させるシーケンスが示されている。
 上述したようにセグメントデータの送信が続けられ、サーバ201は、ステップS31において、コントロールデータ(streamInfo)を送信し、ステップS32において、セグメントデータ(RepID 2,SegmentNo 153)を送信する。そして、クライアント202は、ステップS33において、コントロールデータ(playerInfo)をサーバ201に送信する。
 そして、ユーザが再生を中断(例えば、ポーズやシークなど)するようにクライアント202に対する操作を行うと、ステップS34において、クライアント202は、コントロールデータ(stopStream)をサーバ201に送信する。これにより、クライアント202は、ストリームを停止することをサーバ201に通知する。
 これに応じ、サーバ201は、ステップS35およびS36において、コントロールデータ(streamInfo)およびセグメントデータ(RepID 3,SegmentNo 154)をそれぞれ送信した後、ステップS37において、中断したことを通知するコントロールデータ(streamInfo)をクライアント202に送信する。
 その後、ユーザが再生を再開するようにクライアント202に対する操作を行うと、ステップS38において、クライアント202は、コントロールデータ(Start Stream)を送信して、再開するセグメント番号(図23の例では155)を指定する。
 これに応じ、サーバ201は、ステップS39において、セグメントデータ(RepID 3,SegmentNo 155)をクライアント202に送信し、クライアント202は、ステップS40において、コントロールデータ(playerInfo)をサーバ201に送信する。
 このように、VOD再生を中断し、再開させる処理が行われ、以下同様に、サーバ201からクライアント202にセグメントデータが送信される。
 図24には、VOD再生を最後まで再生し、終了するシーケンスが示されている。
 上述したようにセグメントデータの送信が続けられ、サーバ201は、ステップS51において、コントロールデータ(streamInfo)を送信し、ステップS52において、セグメントデータ(RepID 2,SegmentNo 873)を送信する。そして、クライアント202は、ステップS53において、コントロールデータ(playerInfo)をサーバ201に送信する。
 そして、サーバ201は、ステップS54において、コントロールデータ(streamInfo)を送信し、ステップS55において、セグメントデータ(RepID 2,SegmentNo 874)を送信する。ここで、送信されたセグメントがストリームの最後である場合、サーバ201は、ステップS56において、コントロールデータ(streamInfo)を送信し、ストリームが終了したことをクライアント202に通知する。
 これに応じ、クライアント202は、ステップS57において、コントロールデータ(playerInfo)をサーバ201に送信した後、ステップS58において、コントロールデータ(closeMedia,stopStream)をサーバ201に送信する。これにより、クライアント202は、受信したセグメントの再生をすべて終了し、メディアをクローズすることをサーバ201に通知する。
 サーバ201は、コントロールデータ(closeMedia,stopStream)を受信すると、メディアの情報を破棄する。そして、ステップS59において、サーバ201は、コントロールデータ(MediaStatus)をクライアント202に送信し、VOD再生が終了される。
 このように、VOD再生を終了する処理が行われる。
 図25には、ライブの最初から視聴する場合におけるライブ再生を開始させるシーケンスが示されている。
 例えば、ユーザが、ライブ再生を開始するようにクライアント202に対する操作を行うと処理が開始される。ステップS71において、クライアント202は、コントロールデータ(capability,openMedia,playStream)をサーバ201送信し、クライアント202のケーパビリティを通知するとともに、メディアを指定してストリームの開始するように要求する。
 サーバ201は、この要求に従って、クライアント202により指定されたメディアのメディア情報を読み出し、ステップS72において、コントロールデータ(mediaInfo)をクライアント202に送信することでメディア情報を返信する。
 ここで、例えば、ライブ放送が開始されていない場合にはMediaStatusが定期的に通知され、サーバ201は、ステップS73において、コントロールデータ(mediaInfo)をクライアント202に送信して、MediaStatusを通知する。
 その後、ライブ放送が開始されるとセグメントの送信が開始され、ステップS74において、サーバ201は、コントロールデータ(mediaInfo,streamInfo)をクライアント202に送信する。続いて、サーバ201は、ステップS75において、セグメントデータ(Segment Data of SegmentNo 0)をクライアント202に送信する。
 クライアント202は、このセグメントデータを受信してデコードを開始し、ステップS76において、コントロールデータ(playerInfo)をサーバ201に送信することで、例えば、ストリームのデコードを開始してからの経過時間を通知する。
 このように、ライブの最初から視聴する場合におけるライブ再生を開始する処理が行われ、以下同様に、サーバ201からクライアント202にセグメントデータが送信される。
 図26には、ライブの途中から視聴する場合におけるライブ再生を開始するシーケンスが示されている。
 例えば、ユーザが、ライブ再生を開始するようにクライアント202に対する操作を行うと処理が開始される。ステップS91において、クライアント202は、コントロールデータ(capability,openMedia,playStream)をサーバ201送信し、クライアント202のケーパビリティを通知するとともに、メディアを指定してストリームの開始するように要求する。
 サーバ201は、この要求に従って、クライアント202により指定されたメディアのメディア情報を読み出し、ステップS92において、コントロールデータ(mediaInfo)をクライアント202に送信することでメディア情報を返信する。
 ここで、例えば、ライブ放送が既に始まっている場合は、最新のセグメントから伝送が行われ、ステップS93において、サーバ201は、コントロールデータ(streamInfo)をクライアント202に送信する。続いて、サーバ201は、ステップS94において、セグメントデータ(Segment Data of SegmentNo 1447)をクライアント202に送信する。
 クライアント202は、このセグメントデータを受信してデコードを開始し、ステップS95において、コントロールデータ(playerInfo)をサーバ201に送信することで、例えば、ストリームのデコードを開始してからの経過時間を通知する。
 その後、サーバ201は、セグメントデータを送り続けることができ、ステップS96およびS97において、コントロールデータ(streamInfo)およびセグメントデータ(Segment Data of SegmentNo 1448)をそれぞれ送信する。続いて、サーバ201は、ステップS98およびS99において、コントロールデータ(streamInfo)およびセグメントデータ(Segment Data of SegmentNo 1449)をそれぞれ送信する。
 このように、ライブの途中から視聴する場合におけるライブ再生を開始する処理が行われ、以下同様に、サーバ201からクライアント202にセグメントデータが送信される。
 <3.第2の実施の形態>
  <Multiple Representations Transfer at startup>
  <配信システムを実現するサーバの構成>
 図27に示すように、サーバ201は、受信部211、送信部212、記憶部312、および通信処理部214を備えて構成される。
 受信部211は、ネットワークを介してサーバ201に送信されるデータを受信して通信処理部214に供給する。
 送信部212は、通信処理部214において実行される通信処理に従い、例えば、各種のコントロールデータをクライアント202に送信したり、記憶部312からコンテンツファイルのセグメントを適宜読み出してクライアント202に送信する。
 記憶部312には、サーバ201から配信される画像や音声等のコンテンツファイルが記憶されている。
 通信処理部214は、例えば、クライアント202の通信処理部227との間で、上述したようなコントロールデータを利用した通信処理を行う。
  <配信システムを実現するクライアントの構成>
 図28に示すように、クライアント202は、受信部221、送信部222、バッファ223、再生処理部224、ディスプレイ225、スピーカ226、および通信処理部227を備えて構成される。
 受信部221は、例えば、サーバ201から送信されてくるコントロールデータを受信して通信処理部227に供給したり、サーバ201から送信されてくるコンテンツファイルのセグメントを受信してバッファ223に供給する。バッファ223は、受信部221から供給されるコンテンツファイルのセグメントを一時的に保持する。
 再生処理部224は、バッファ223に保持されているセグメントを読み出してデコードする再生処理を行い、映像データをディスプレイ225に供給するとともに、音声データをスピーカ226に供給する。これにより、ディスプレイ225は映像を表示し、スピーカ226は音声を出力する。
 通信処理部227は、例えば、サーバ201の通信処理部214との間で、上述したようなコントロールデータを利用した通信処理を行う。
 次に、図29のフローチャートを参照して、図27のサーバ201、および図28のクライアント202とからなる配信システムによる、コンテンツの再生開始時において複数のリプレンゼンテーションを送信する処理(Multiple Representations Transfer at startup)について説明する。すなわち、この処理においては、再生開始時に、同一のSegment Noで、異なるリプレンゼンテーションのセグメントデータが送信されるようにする。これにより、帯域の状態に対応した画質のリプレンゼンテーションのセグメントデータから再生させることができ、必ず最初に低画質の画像から再生が開始されるのを防ぐことが可能となる。
 すなわち、例えば、ユーザが、VOD再生を開始するようにクライアント202に対する操作を行うと処理が開始される。
 ステップS111において、クライアント202の通信処理部227は、送信部222を制御して、コントロールデータ(capability,openMedia,playStream)をサーバ201に送信する。これにより、クライアント202のケーパビリティがサーバ201に通知されるとともに、メディアが指定されてストリームの開始が要求される。
 サーバ201の通信処理部214は、受信部211を制御して、この要求を受信し、クライアント202により指定されたメディアのメディア情報を記憶部213より読み出す。そして、ステップS112において、通信処理部214は、送信部212を制御して、コントロールデータ(mediaInfo)をクライアント202に送信することでメディア情報を返信する。
 そして、サーバ201の通信処理部214は、ステップS113において、送信部212を制御して、コントロールデータ(streamInfo(RepID 1,SegmentNo 0,RepRep:true))をクライアント202に送信して、次に伝送されるセグメントデータの属性を通知する。続いて、通信処理部214は、ステップS114において、送信部212を制御してセグメントデータ(RepID 1,SegmentNo 0)をクライアント202に送信する。
 すなわち、DASHにウェブソケットを適用する際、コントロールデータとセグメントデータとは、図9を参照して説明したように、それぞれが個別のサブフレームのペイロード部分に配置されている。
 そこで、サーバ201の通信処理部214は、ステップS113において、送信部212を制御して、セグメントデータを送信する前に、コントロールデータを用いて、StreamInfoにより、次のタイミングで送信するセグメントデータ(Media Data Frame)により送信する予定であるリプレゼンテーションを識別する情報(RepID 1)と共に、同一のSegment Noで、異なるリプレゼンテーションのセグメントデータを送信する可能性があることを示す情報(RepRep:true)を送信する。
 すなわち、例えば、図30の上段最左部におけるコントロールフレーム(Control Frame StreamInfo)においては、次に送信するセグメントデータが、セグメントナンバが0(SegmentNo. 0)であって、セグメントのリプレゼンテーションがVideo1(RepID:Video1)であることを示す情報であることが示されている。さらに、同一のSegment Noで、異なるリプレゼンテーションのセグメントデータを送る可能性があることを示す情報(Multiple Representationl:True)が送信される。尚、Multiple Representationl:Trueは、図29のRepRep:trueに対応する。
 そして、引き続き、ステップS114において、図30の上段の左から2番目で示されるように、セグメントデータが送信される。
 クライアント202の通信処理部227は、受信部221を制御して、このセグメントデータを受信してデコードを開始する。そして、ステップS115において、通信処理部227は、送信部222を制御して、コントロールデータ(playerInfo(CurrentPresentanTime))をサーバ201に送信することで、ストリームのデコードを開始してからの経過時間を通知する。
 その後、サーバ201の通信処理部214は、送信部212を制御して、セグメントデータを順次、クライアント202に送信する。このとき、サーバ201の通信処理部214は、ネットワークの状態に応じた処理(Network Adaption)により、リプレゼンテーション(Rep)を変えるPlayerInfoにより、CurrentPresentanTimeからクライアント202のバッファ223のバッファ量を推測することで、適切な帯域に適応することができる。
 すなわち、これにより、例えば、十分な帯域があると判断される場合、サーバ201の通信制御部214は、同一のセグメントナンバであって、異なるビットレートの高いリプレゼンテーションのセグメントデータを送信すると判断し、ステップS116において、図30の下段最左列で示されるように、コントロールデータ(streamInfo(RepID 3,SegmentNo 0,RepRep:false))からなるコントロールデータフレーム(Control Frame streamInfo)を送信する。
 このとき、クライアント202は、直前に送信されてきている、ビットレートの低いリプレンゼンテーションのセグメントデータ(RepID 1,SegmentNo 0)を破棄する。
 そして、ステップS117において、サーバ201の通信制御部214は、送信部212を制御して、図30の下段左から2番目で示されるように、事前のコントロールデータにより予告したセグメントデータ(RepID 3,SegmentNo 0)からなるセグメントデータフレーム(Media Data Frame0)を送信する。
 すなわち、図30の下段最左部で示されるように、次に送信するセグメントデータが、直前に送ったセグメントデータと同一のセグメントナンバが0(SegmentNo. 0)であって、よりビットレートの高いリプレゼンテーションのVideo3(RepID:Video3)を示すコントロールデータからなるコントロールフレームが送信される。続いて、サーバ201の通信制御部214は、送信部212を制御して、ステップS117において、図30の下段左から2番目で示されるように、セグメントデータからなるセグメントデータフレーム(RepID 3,SegmentNo 0)からなるセグメントデータフレーム(Media Data Frame0)を送信する。
 続いて、サーバ201の通信制御部214は、送信部212を制御して、ステップS118において、図30の下段左から3番目で示されるように、コントロールデータ(streamInfo)からなるコントロールフレーム(Control Frame streamInfo)をクライアント202に送信する。そして、ステップS119において、サーバ201の通信制御部214は、送信部212を制御して、図30の下段左から4番目で示されるように、セグメントデータ(RepID 3,SegmentNo 1)からなるセグメントデータフレーム(Media Data Frame1)を送信する。
 クライアント202の通信制御部227は、受信部221を制御して、このセグメントデータを受信してデコードを開始し、ステップS120において、送信部222を制御して、コントロールデータ(playerInfo(CurrentPresentanTime))をサーバ201に送信する。これにより、クライアント202において、ストリームのデコードが開始されてからの経過時間がサーバ201に通知される。
 また、サーバ201の通信制御部214は、Transmission Controlにより、クライアント202の再生進行に合わせてセグメントデータを送り続けることができる。即ち、サーバ201の通信制御部214は、クライアント202の再生進行に合わせたタイミングで、ステップS121において、送信部212を制御して、図30の下段左から5番目で示されるように、コントロールデータ(streamInfo)からなるコントロールフレーム(Control Frame streamInfo)をクライアント202に送信する。
 ステップS122において、サーバ201の通信制御部214は、送信部212を制御して、図30の下段最右列で示されるように、セグメントデータ(RepID 3,SegmentNo 2)からなるセグメントデータフレーム(Media Data Frame2)を送信する。
 一方、クライアント202の通信制御部227は、再生処理部224により再生状況の変化があると、ステップS123において、送信部222を制御して、コントロールデータ(playerInfo)をサーバ201に送信し、ストリームのデコードを開始してからの経過時間を通知する。
 このように、サーバ201は、再生開始時に、帯域の状態に応じて、必要に応じてリプレゼンテーションを切り替えて、セグメントデータをクライアント202に送信する。セグメントデータのリプレゼンテーションを切り替える際には、直前に送ったセグメントナンバと同一のセグメントデータであって、帯域の状態に応じたリプレゼンテーションに切り替えられたものが送信される。
 尚、ステップS115の処理により、例えば、今の帯域に対して現在のリプレゼンテーションが適切であると判断される場合、サーバ201の通信処理部214は、直前に送信したセグメントデータのセグメントナンバを順序通り1インクリメントし、同一のリプレゼンテーションのセグメントデータを送信する。すなわち、サーバ201は、次のステップにおいて、図30の上段の左から3列目で示されるように、コントロールデータ(streamInfo(RepID 1,SegmentNo 1,RepRep:false))からなるコントロールフレーム(Control Frame streamInfo)をクライアント202に送信する。
 そして、さらに次のステップにおいて、サーバは、図30の上段左から4番目で示されるように、事前のコントロールデータにより予告したセグメントデータ(RepID 1,SegmentNo 1)からなるセグメントデータフレーム(Media Data Frame1)を送信し、以降において、順次セグメントナンバが1ずつインクリメントされて、コントロールデータからなるコントロールデータフレームと、セグメントデータからなるセグメントデータフレームとが、順次、交互に送信されていく。
 以上の如く、再生開始時に同一のセグメントデータに対して、帯域の状態に応じて、複数の種別のリプレゼンテーションを送信するようにしたので、帯域の状態に対して適切なビットレートのセグメントデータを送信することが可能となる。これにより、必ず低画質の画像から再生が開始されるのを防止することが可能となり、帯域の状態に応じた適切な画質の画像から再生させることが可能となる。結果として、再生処理における操作性を向上させることが可能となる。
 <4.第3の実施の形態>
  <Low delay Transfer by Sub-Segment>
 次に、図31のフローチャートを参照して、セグメント(Segment)データをより小さな単位のサブセグメント(Sub-Segment)データで管理するシーケンスについて説明する。
 サブセグメントデータは、セグメントデータよりも小さな単位としたものである。これにより、セグメントデータ単位での処理よりも、より高速での動作を実現させて、伝送遅延等を防止するものである。
 例えば、ユーザが、VOD再生を開始するようにクライアント202に対する操作を行うと処理が開始される。
 ステップS141において、クライアント202の通信制御部227は、送信部222を制御して、コントロールデータ(capability(subSegment=true),openMedia,playStream)をサーバ201に送信させる。これにより、クライアント202のケーパビリティが通知されるとともに、メディアが指定されてストリームが開始されるように要求される。このとき、ケーパビリティにおいて、サブセグメント単位での伝送に対応することができるときには、クライアント202の通信制御部227は、送信部222を制御して、サブセグメント単位での伝送が可能であることを示す情報(subSegment=true)をサーバ201に送信する。これにより、サーバ201の通信制御部214は、クライアント202がサブセグメント単位での伝送に対応することを認識することができる。
 サーバ201の通信制御部214は、この要求に従って、記憶部213よりクライアント202により指定されたメディアのメディア情報を読み出し、ステップS142において、送信部212を制御して、コントロールデータ(mediaInfo)をクライアント202に送信することでメディア情報を返信する。
 そして、サーバ201の通信制御部214は、ステップS143において、送信部212を制御して、図32の最左部で示されるようにコントロールデータ(streamInfo(RepID 1,SegmentNo 1,SubsegmentNo, SAPType 1))からなるコントロールフレーム(Control Frame)をクライアント202に送信させて、次に伝送されるサブセグメントの属性を通知する。
 図32は、図中の左右に異なるリプレゼンテーションの2個のセグメントデータが、それぞれ2個のサブセグメントデータから構成されるときに送信されるコントロールデータからなるコントロールフレーム(Control Frame)と、サブセグメントデータからなるメディアデータフレーム(Media Data Frame)の送信順序を説明する図である。
 すなわち、図32には、左からリプレゼンテーションがvideo1(RepID : video1)のセグメント番号が1となる(Segment No 1)セグメントデータが送信されるときの手順と、リプレゼンテーションがvideo2(RepID : video2)のセグメント番号が2となる(Segment No 2)のセグメントデータが送信されるときの手順が示されている。
 サブセグメントデータは、例えば、セグメントデータがMPEGの画像データであるような場合における、GOP(Group of Picture)であり、セグメントデータの構成単位よりも、より小さなデータサイズの構成単位のデータである。
 この場合、図32で示されるように、サブセグメント単位で伝送が行われるので、サブセグメント単位で、コントロールデータも構成される。
 従って、図32においては、図中の左側のセグメントデータに対する1番目のサブセグメントデータ(Media Data Frame:Segment Data of Subsegment 1)が送信される前のタイミングで、コントロールデータ(streamInfo(RepID video1,SegmentNo 1,SubsegmentNo 1, SAPType 1))からなるコントロールデータフレーム(Control Frame)が送信される。
 同様に、図32中の左側のセグメントデータに対する2番目のサブセグメントデータ(Media Data Frame:Segment Data of Subsegment 2)が送信される前のタイミングで、コントロールデータ(streamInfo(RepID video1,SegmentNo 1,SubsegmentNo 2, SAPType 3))からなるコントロールデータフレーム(Control Frame)が送信される。
 引き続き、図32中の右側のセグメントデータに対する1番目のサブセグメントデータ(Media Data Frame:Segment Data of Subsegment 1)が送信される前のタイミングで、コントロールデータ(streamInfo(RepID video2,SegmentNo 2,SubsegmentNo 1, SAPType 1))からなるコントロールデータフレーム(Control Frame)が送信される。
 そして、図中の右側のセグメントに対する2番目のサブセグメントデータ(Media Data Frame:Segment Data of Subsegment 2)が送信される前のタイミングで、コントロールデータ(streamInfo(RepID video2,SegmentNo 2,SubsegmentNo 2, SAPType 2))からなるコントロールデータフレーム(Control Frame)が送信される。
 ここで、図31の説明に戻る。
 従って、この場合、サーバ201の通信制御部214は、ステップS144において、送信部212を制御して、図31中の左側のセグメントに対する1番目のサブセグメントデータ(Media Data Frame:Segment Data of Subsegment 1(RepID video1,SegmentNo 1,SubsegmentNo 1, SAPType 1))を送信する。
 クライアント202の通信制御部227は、受信部221を制御して、このセグメントデータを受信して、バッファ223に記憶させる。このとき、再生処理部224は、バッファ223にバッファリングされたセグメントデータのデコードを開始する。ステップS145において、通信制御部227は、送信部222を制御して、コントロールデータ(playerInfo)をサーバ201に送信することで、再生処理部224におけるストリームのデコードを開始してからの経過時間を通知する。この際、クライアント202は、サブセグメント単位のセグメントデータよりも、より小さなデータに基づいて画像を表示する処理を実行することができるので、より高速に画像を表示することが可能となる。
 そして、サーバ201の通信処理部214は、ステップS146において、送信部212を制御して、図32の左側のセグメントデータのうちの2番目のサブセグメントデータのコントロールデータ(streamInfo(RepID video1,SegmentNo 1,SubsegmentNo 2, SAPType 3))からなるコントロールフレーム(Control Frame)をクライアント202に送信して、次に伝送されるサブセグメントの属性を通知する。
 従って、この場合、サーバ201の通信制御部214は、ステップS147において、送信部212を制御して、図32中の左側のセグメントに対する2番目のサブセグメントデータ(Media Data Frame:Segment Data of Subsegment 2(RepID video1,SegmentNo 1,SubsegmentNo 2, SAPType 3))を送信する。
 ここで、ユーザにより再生停止が指示された場合、クライアント202の通信制御部227は、ステップS148において、送信部222を制御して、コントロールデータ(closeMedia,stopStream)をサーバ201に送信する。これにより、クライアント202の再生処理部224は、バッファ223に記憶されている、受信したセグメントの再生をすべて終了する。ここで、通信処理部227は、送信部222を制御して、メディアをクローズすることをサーバ201に通知する。
 サーバ201の通信処理部214は、受信部211を制御して、コントロールデータ(closeMedia,stopStream)を受信すると、メディアの情報を破棄し、停止処理を開始する。そして、ステップS149において、サーバ201の通信処理部214は、送信部212を制御して、コントロールデータ(MediaStatus)をクライアント202に送信する。
 しかしながら、サーバ201の通信制御部214は、送信部212を制御して、サブセグメント単位の処理であることから、送信が開始された処理を停止することができないので、例えば、ステップS150において、引き続き図32の右側のセグメントデータのうちの1番目のサブセグメントデータのコントロールデータ(streamInfo(RepID video2,SegmentNo 2,SubsegmentNo 1, SAPType 2))からなるコントロールフレーム(Control Frame)をクライアント202に送信して、次に伝送されるサブセグメントの属性を通知する。
 そして、サーバ201の通信制御部214は、ステップS151において、送信部212を制御して、図32中の右側のセグメントに対する1番目のサブセグメントデータ(Media Data Frame:Segment Data of Subsegment 1(RepID video2,SegmentNo 2,SubsegmentNo 1, SAPType 2))を送信する。
 最後に、ステップS152において、サーバ201の通信制御部214は、送信部212を制御して、動作の停止をクライアントに通知する。
 以上の如く、セグメントデータ単位よりも、より小さなサブセグメント単位で、コントロールデータStreamInfo(SegmentNo,SubSegmentNo,SAP Type)を付して、管理することで、画像の再生表示時間、停止完了までの時間、およびコンテンツの切り替え等をより高速に実現することが可能となる。すなわち、上述したように、送信が開始された処理については停止できないため、サブセグメントデータのようにセグメントデータより小さな単位で送信を管理することで、画像の再生表示時間、停止完了までの時間、およびコンテンツの切り替え等をより高速に実現することが可能となる。
 また、例えば、ライブ放送では、例えば、GOP単位でサブセグメントを構成することで、伝送遅延をより短縮させることが可能となる。さらに、MPDにサブセグメントの情報がない場合、サーバ201の通信制御部214は、セグメントデータを解析(パース)して、可能であればサブセグメントに分割して、サブセグメント単位で伝送するようにしてもよく、このようにすることで、セグメントデータの管理を、より迅速なものとすることが可能となる。結果として、再生における操作性を向上させることが可能となる。
 <5.第4の実施の形態>
  <Auto Segment Skip for Live Streaming>
 次に、図33を参照して、本技術を適用した第4の実施の形態について説明する。
 図33には、ライブ再生でネットワーク輻輳が発生した場合に行われるシーケンスが示されている。
 例えば、ユーザが、ライブ再生を開始するようにクライアント202に対する操作を行うと処理が開始される。ステップS161において、クライアント202は、コントロールデータ(capability,openMedia,playStream)をサーバ201送信し、クライアント202のケーパビリティを通知するとともに、メディアを指定してストリームの開始するように要求する。ここで、上述した図20に示したようにcapabilityでは、segmentSkipにより、セグメントスキップに対応可能であるか否かを指定することができ、図33の例では、セグメントスキップに対応可能であることを指定する“true”とされている。
 サーバ201は、この要求に従って、クライアント202により指定されたメディアのメディア情報を読み出し、ステップS162において、コントロールデータ(mediaInfo)をクライアント202に送信することでメディア情報を返信する。
 ここで、例えば、ライブ放送が既に始まっている場合は、最新のセグメントから伝送が行われる。サーバ201は、ステップS163において、コントロールデータ(streamInfo)をクライアント202に送信するのに続いて、ステップS164において、セグメントデータ(MediaDisc 1, SegmentNo 1699)をクライアント202に送信する。
 その後、セグメントデータの送信が順次行われ、サーバ201は、ステップS165において、コントロールデータ(streamInfo)を送信し、続いて、ステップS166において、セグメントデータ(MediaDisc 1, SegmentNo 1700)を送信する。
 クライアント202は、ステップS167において、コントロールデータ(playerInfo)をサーバ201に送信する。例えば、コントロールデータ(playerInfo)には、上述した図19に示したようにcurrentPresentationTimeおよびBufferedTimeが含まれる。
 このとき、ネットワーク輻輳(Network Congestion)が発生して、サーバ201およびクライアント202の間で送受信が行うことができなくなった後、ネットワーク輻輳が解消したとする。
 このようにネットワーク輻輳が発生した場合、サーバ201は、前のセグメントデータ(SegmentNo 1700)の伝送に時間がかかってしまい、SegmentNo 1701を送信しても再生されないと判断した場合、SegmentNo 1701の送信をスキップする。
 即ち、サーバ201は、ステップS168およびS169において、コントロールデータ(mediaInfo)およびコントロールデータ(streamInfo)を送信した後、ステップS170において、セグメントデータ(MediaDisc 1, SegmentNo 1701)を送信する。つまり、サーバ201は、クライアント202においてライブ再生されるセグメントから送信を再開する。
 例えば、サーバ201は、SegmentNoおよびSubSegmentのシグナリングの他に、帯域に適応的に、クライアント202にセグメントがどのくらいバッファされているのかをシグナリングすることができる。即ち、サーバ201は、クライアント202からステップS167で送信されるコントロールデータ(playerInfo)により、currentPresentationTimeもしくはBufferedTimeをシグナリングすることができる。currentPresentationTimeは、クライアント202において再生処理部224によりストリームのデコードが開始されてからの経過時間を示す。BufferedTimeは、クライアント202のバッファ223に保持されているセグメントデータにて再生継続可能な時間を示し、仮にネットワークからセグメントデータを全く受信することができない状態において再生を継続することができる時間と同等である。
 従って、サーバ201は、currentPresentationTimeもしくはBufferedTimeに基づいて、送信しても再生されないと判断したセグメントの送信をスキップ(回避)してセグメントの送信を行うことができる。これにより、例えば、再生されない不要なセグメントの送信が行われないので、帯域をより有効に利用することができ、ライブ再生でネットワーク輻輳が発生した場合に適切な復帰を行うことができる。
 なお、currentPresentationTimeおよびBufferedTimeを通知するコントロールデータ(playerInfo)は、毎回送信する必要はなく、例えば、クライアント202は、再生が開始された時点、または、データが枯渇して再生を再開したときに送信することができる。
 <6.第5の実施の形態>
  <Fast Switching of multiple media>
 次に、図34および図35を参照して、本技術を適用した第5の実施の形態について説明する。
 図34および図35には、複数のメディアを切り替えて再生させるシーケンスが示されている。
 例えば、ユーザが、再生を開始するようにクライアント202に対する操作を行うと処理が開始される。ステップS181において、クライアント202は、コントロールデータ(capability,openMedia,playStream)をサーバ201送信し、クライアント202のケーパビリティを通知するとともに、メディアを指定してストリームの開始するように要求する。
 サーバ201は、この要求に従って、クライアント202により指定されたメディアのメディア情報を読み出し、ステップS182において、コントロールデータ(mediaInfo)をクライアント202に送信することでメディア情報を返信する。このとき、図34の例では、再生の対象とされるメディアは、MediaDesc 1とされる。
 そして、サーバ201は、ステップS183において、コントロールデータ(streamInfo)をクライアント202に送信して、次に伝送されるセグメントデータの属性を通知する。続いて、サーバ201は、ステップS184において、セグメントデータ(MediaDesc 1,SegmentNo1447)をクライアント202に送信する。このとき、例えば、ライブ再生であって放送が既に始まっている場合、最新のセグメントから伝送が行われる。
 クライアント202は、このセグメントデータを受信してデコードを開始し、ステップS185において、コントロールデータ(playerInfo)をサーバ201に送信する。
 続いて、サーバ201は、セグメントデータの送信を継続し、ステップS186およびS187において、コントロールデータ(streamInfo)およびセグメントデータ(MediaDesc 1,SegmentNo1448)を、クライアント202にそれぞれ送信する。
 クライアント202は、このセグメントデータを受信してデコード行う一方で、ステップS188において、コントロールデータ(openMedia)をサーバ201送信し、別のメディアを指定してオープンするように要求する。
 サーバ201は、この要求に従って、クライアント202により指定されたメディアのメディア情報を読み出し、ステップS189において、コントロールデータ(mediaInfo)をクライアント202に送信することでメディア情報を返信する。このとき、図34の例では、オープンされるメディアは、再生中のMediaDesc 1とは別のMediaDesc 2とされる。
 そして、サーバ201は、セグメントデータの送信を継続し、ステップS190およびS191において、コントロールデータ(streamInfo)およびセグメントデータ(MediaDesc 1,SegmentNo1449)を、クライアント202にそれぞれ送信する。続いて、図35に示すように、ステップS192およびS193において、コントロールデータ(streamInfo)およびセグメントデータ(MediaDesc 1,SegmentNo1450)を、クライアント202にそれぞれ送信する。
 このとき、ユーザが、メディアを切り替えるようにクライアント202に対する操作を行うと、ステップS194において、クライアント202は、コントロールデータ(changeMedia)をサーバ201送信し、ストリームされるメディアをMediaDesc 2に切り替えるようにサーバ201に対して要求する。
 ここで、MediaDesc 2のメディア情報は、図34のステップS189で既にクライアント202に送信されている。従って、サーバ201は、ステップS195において、コントロールデータ(streamInfo)を送信するのに続いて、ステップS196において、セグメントデータ(MediaDesc 2,SegmentNo7337)を送信する。これにより、途切れなくストリーム再生が継続される。
 そして、サーバ201は、セグメントデータの送信を継続し、ステップS197およびS198において、コントロールデータ(streamInfo)およびセグメントデータ(MediaDesc 2,SegmentNo7338)を、クライアント202にそれぞれ送信する。
 また、ユーザが再度、メディアを切り替えるようにクライアント202に対する操作を行うと、ステップS199において、クライアント202は、コントロールデータ(changeMedia)をサーバ201に送信し、ストリームされるメディアをMediaDesc 1に切り替えるようにサーバ201に対して要求する。
 ここで、MediaDesc 1のメディア情報は、図34のステップS182で既にクライアント202に送信されている。従って、サーバ201は、ステップS200において、コントロールデータ(streamInfo)を送信するのに続いて、ステップS201において、セグメントデータ(MediaDesc 1,SegmentNo1452)を送信する。このとき、サーバ201は、ライブ再生であれば最新のセグメントから送信を行い、VOD再生であれば、前回のメディアのセグメントの続きから送信を行う。
 そして、サーバ201は、セグメントデータの送信を継続し、ステップS202およびS203において、コントロールデータ(streamInfo)およびセグメントデータ(MediaDesc 1,SegmentNo1453)を、クライアント202にそれぞれ送信する。
 このように、複数のメディアを切り替えて再生する処理が行われ、以下同様に、サーバ201からクライアント202にセグメントデータが送信される。
 以上のように、サーバ201は、クライアント202の要求に応じて複数のメディアをあらかじめオープンしておくことができる。これにより、クライアント202が、ストリーム中にコントロールデータ(changeMedia)を送信することで、サーバ201は、各メディアのセグメントを切れ目なく送信することができる。即ち、クライアント202は、メディアを切り替える際に新しいMPD(メディア情報)をロードする処理が不要になるので、チャンネルをスムーズに高速に切り替えて、メディアを再生することができる。
 また、幾つのメディアをオープンできるのかはサーバ201の能力に依存するので、クライアント202が、サーバ201に対してメディアをオープンできるか否かを問い合わせるようにしてもよい。なお、OpenMediaおよびCloseMediaのコマンドではステートフルにMPD情報を維持できるようにされる。また、クライアント202がOpenMediaを送信するのに応じて、サーバ201はMediaDescriptorを返信する。
 例えば、放送型のサービスであれば、最初から複数のメディアをオープンするようにしておくことで、高速にチャンネルを切り替えることができる。
 <7.第6の実施の形態>
  <コンピュータ>
 上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
 図36は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 図36に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
 バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
 入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
 以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
 コンピュータ(CPU901)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。
 また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。
 その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
 また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
 また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
 さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
 上述した実施形態に係る情報処理装置は、例えば、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。
 なお、本技術は以下のような構成も取ることができる。
(1) MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記サーバの機能を実現する情報処理装置において、
 前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記クライアントに送信する送信部を含む
 情報処理装置。
(2) 前記送信部の動作を制御する通信制御部をさらに含み、
 前記通信制御部は、前記コンテンツデータの再生開始時において、前記送信部により送信された前記部分画像の、前記クライアントにおける再生状態に基づいて、前記送信された前記部分画像と同一の前記部分画像であって、種別の異なる符号化データからなるセグメントデータを、前記送信部を制御して、前記クライアントに送信させる
 (1)に記載の情報処理装置。
(3) 前記クライアントからのデータを受信する受信部をさらに含み、
 前記通信制御部は、
 前記受信部を制御して、前記クライアントからの前記同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータの受信が可能であることを示す受信可能情報を受信するとき、前記受信可能情報が受信できる前記クライアントに対して、前記送信部を制御して、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記クライアントに送信させる
 (2)に記載の情報処理装置。
(4) MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記サーバの機能を実現する情報処理装置の情報処理方法において、
 前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記クライアントに送信する
 ステップを含む情報処理方法。
(5) MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記サーバの機能を実現する情報処理装置を制御するコンピュータに、
 前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記クライアントに送信する
 ステップを含む処理を実行させるプログラム。
(6) MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記クライアントの機能を実現する情報処理装置において、
 前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記サーバより受信する受信部と、
 前記受信部により受信した部分画像の符号化データからなるセグメントデータをバッファリングするバッファリング部と、
 前記バッファリング部にバッファリングされた部分画像の符号化データからなるセグメントデータを再生する再生部とを含み、
 前記バッファリング部は、前記受信部により受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを破棄し、前記受信部により受信された部分画像の符号化データからなるセグメントデータをバッファリングする
 情報処理装置。
(7) 前記再生部は、前記受信部により受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを再生する
 (6)に記載の情報処理装置。
(8) 前記サーバにデータを送信する送信部と、
 前記送信部の動作を制御する通信制御部をさらに含み、
 前記通信制御部は、前記再生部による前記セグメントデータの再生状態を示す情報を、前記送信部を制御して、前記サーバに送信させる
 (6)に記載の情報処理装置。
(9) 前記通信制御部は、
 前記送信部を制御して、前記クライアントからの前記同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータの受信が可能であることを示す受信可能情報を前記サーバに送信させる
 (8)に記載の情報処理装置。
(10) MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記クライアントの機能を実現する情報処理装置の情報処理方法において、
 前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記サーバより受信し、
 受信した部分画像の符号化データからなるセグメントデータをバッファリングし、
 バッファリングされた部分画像の符号化データからなるセグメントデータを再生するステップを含み、
 受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを破棄し、受信された部分画像の符号化データからなるセグメントデータをバッファリングする
 情報処理方法。
(11) MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記クライアントの機能を実現する情報処理装置を制御するコンピュータに、
 前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記サーバより受信し、
 受信した部分画像の符号化データからなるセグメントデータをバッファリングし、
 バッファリングされた部分画像の符号化データからなるセグメントデータを再生するステップを含み、
 受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを破棄し、受信された部分画像の符号化データからなるセグメントデータをバッファリングする
 処理を実行させるプログラム。
(12) MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する前記サーバおよび前記クライアントの機能を実現する第1および第2の情報処理装置からなる配信システムであって、
 前記第1の情報処理装置は、
  前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記第2の情報処理装置に送信する送信部を含み、
 前記第2の情報処理装置は、
  前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記第1の情報処理装置より受信する受信部と、
  前記受信部により受信した部分画像の符号化データからなるセグメントデータをバッファリングするバッファリング部と、
  前記バッファリング部にバッファリングされた部分画像の符号化データからなるセグメントデータを再生する再生部とを含み、
  前記バッファリング部は、前記受信部により受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを破棄し、前記受信部により受信された部分画像の符号化データからなるセグメントデータをバッファリングする
 配信システム。
 なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
 100 配信システム, 101 配信データ生成装置, 102 配信サーバ, 103 端末装置, 104 ネットワーク, 201 サーバ, 202 クライアント

Claims (12)

  1.  MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記サーバの機能を実現する情報処理装置において、
     前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記クライアントに送信する送信部を含む
     情報処理装置。
  2.  前記送信部の動作を制御する通信制御部をさらに含み、
     前記通信制御部は、前記コンテンツデータの再生開始時において、前記送信部により送信された前記部分画像の、前記クライアントにおける再生状態に基づいて、前記送信された前記部分画像と同一の前記部分画像であって、種別の異なる符号化データからなるセグメントデータを、前記送信部を制御して、前記クライアントに送信させる
     請求項1に記載の情報処理装置。
  3.  前記クライアントからのデータを受信する受信部をさらに含み、
     前記通信制御部は、
     前記受信部を制御して、前記クライアントからの前記同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータの受信が可能であることを示す受信可能情報を受信するとき、前記受信可能情報が受信できる前記クライアントに対して、前記送信部を制御して、前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記クライアントに送信させる
     請求項2に記載の情報処理装置。
  4.  MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記サーバの機能を実現する情報処理装置の情報処理方法において、
     前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記クライアントに送信する
     ステップを含む情報処理方法。
  5.  MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記サーバの機能を実現する情報処理装置を制御するコンピュータに、
     前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記クライアントに送信する
     ステップを含む処理を実行させるプログラム。
  6.  MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記クライアントの機能を実現する情報処理装置において、
     前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記サーバより受信する受信部と、
     前記受信部により受信した部分画像の符号化データからなるセグメントデータをバッファリングするバッファリング部と、
     前記バッファリング部にバッファリングされた部分画像の符号化データからなるセグメントデータを再生する再生部とを含み、
     前記バッファリング部は、前記受信部により受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを破棄し、前記受信部により受信された部分画像の符号化データからなるセグメントデータをバッファリングする
     情報処理装置。
  7.  前記再生部は、前記受信部により受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを再生する
     請求項6に記載の情報処理装置。
  8.  前記サーバにデータを送信する送信部と、
     前記送信部の動作を制御する通信制御部をさらに含み、
     前記通信制御部は、前記再生部による前記セグメントデータの再生状態を示す情報を、前記送信部を制御して、前記サーバに送信させる
     請求項6に記載の情報処理装置。
  9.  前記通信制御部は、
     前記送信部を制御して、前記クライアントからの前記同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータの受信が可能であることを示す受信可能情報を前記サーバに送信させる
     請求項8に記載の情報処理装置。
  10.  MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記クライアントの機能を実現する情報処理装置の情報処理方法において、
     前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記サーバより受信し、
     受信した部分画像の符号化データからなるセグメントデータをバッファリングし、
     バッファリングされた部分画像の符号化データからなるセグメントデータを再生するステップを含み、
     受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを破棄し、受信された部分画像の符号化データからなるセグメントデータをバッファリングする
     情報処理方法。
  11.  MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する配信システムの前記クライアントの機能を実現する情報処理装置を制御するコンピュータに、
     前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記サーバより受信し、
     受信した部分画像の符号化データからなるセグメントデータをバッファリングし、
     バッファリングされた部分画像の符号化データからなるセグメントデータを再生するステップを含み、
     受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを破棄し、受信された部分画像の符号化データからなるセグメントデータをバッファリングする
     処理を実行させるプログラム。
  12.  MPEG-DASHを利用してコンテンツデータをサーバからクライアントに配信する前記サーバおよび前記クライアントの機能を実現する第1および第2の情報処理装置からなる配信システムであって、
     前記第1の情報処理装置は、
      前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記第2の情報処理装置に送信する送信部を含み、
     前記第2の情報処理装置は、
      前記コンテンツデータの再生開始時において、同一の部分画像に対して、複数の種別の符号化データからなるセグメントデータを前記第1の情報処理装置より受信する受信部と、
      前記受信部により受信した部分画像の符号化データからなるセグメントデータをバッファリングするバッファリング部と、
      前記バッファリング部にバッファリングされた部分画像の符号化データからなるセグメントデータを再生する再生部とを含み、
      前記バッファリング部は、前記受信部により受信された部分画像の符号化データからなるセグメントデータが、バッファリングされた部分画像の符号化データからなるセグメントデータと同一の部分画像である場合、バッファリングしている部分画像の符号化データからなるセグメントデータを破棄し、前記受信部により受信された部分画像の符号化データからなるセグメントデータをバッファリングする
     配信システム。
PCT/JP2015/067235 2014-06-30 2015-06-16 情報処理装置および方法、配信システム、並びにプログラム WO2016002497A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014135148 2014-06-30
JP2014-135148 2014-06-30

Publications (1)

Publication Number Publication Date
WO2016002497A1 true WO2016002497A1 (ja) 2016-01-07

Family

ID=55019044

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/067235 WO2016002497A1 (ja) 2014-06-30 2015-06-16 情報処理装置および方法、配信システム、並びにプログラム

Country Status (1)

Country Link
WO (1) WO2016002497A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014042028A1 (ja) * 2012-09-13 2014-03-20 ソニー株式会社 コンテンツ供給装置、コンテンツ供給方法、プログラム、およびコンテンツ供給システム
JP2014513449A (ja) * 2011-02-11 2014-05-29 インターデイジタル パテント ホールディングス インコーポレイテッド コンテンツの配信および受信の方法および装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014513449A (ja) * 2011-02-11 2014-05-29 インターデイジタル パテント ホールディングス インコーポレイテッド コンテンツの配信および受信の方法および装置
WO2014042028A1 (ja) * 2012-09-13 2014-03-20 ソニー株式会社 コンテンツ供給装置、コンテンツ供給方法、プログラム、およびコンテンツ供給システム

Similar Documents

Publication Publication Date Title
US20230269409A1 (en) Advanced trick-play modes for streaming video
US11272232B2 (en) Synchronizing multiple over the top streaming clients
US11516542B2 (en) Systems and methods for real-time adaptive bitrate transcoding and transmission of transcoded media
WO2013008867A1 (ja) 送信装置、送信装置の制御方法、制御プログラム、及び記録媒体
US20160142750A1 (en) Arrangements and method thereof for a channel change during streaming
US10826963B2 (en) Reducing latency for streaming video
US11128897B2 (en) Method for initiating a transmission of a streaming content delivered to a client device and access point for implementing this method
JP2021040342A (ja) トリックプレイ再生の間にオーディオコンテンツを提供するためのシステムおよび方法
WO2018103696A1 (zh) 媒体文件的播放方法、服务端、客户端及系统
US9516357B2 (en) Recording variable-quality content stream
US10687106B2 (en) System and method for distributed control of segmented media
JP7025446B2 (ja) ユーザが製作したコンテンツの第三者コンテンツストリーム中へのリアルタイム取り込み
JP2016015534A (ja) 情報処理装置および方法
JP2016015533A (ja) 情報処理装置および方法
WO2016002497A1 (ja) 情報処理装置および方法、配信システム、並びにプログラム
WO2016002498A1 (ja) 情報処理装置および方法、配信システム、並びにプログラム
JP7365212B2 (ja) 動画再生装置、動画再生システム、および動画再生方法
JP6294527B2 (ja) 送信装置、送信方法、再生装置、及び再生方法
US11856242B1 (en) Synchronization of content during live video stream
EP3732888B1 (en) Reducing latency for streaming video
CA3050636C (en) Reducing latency for streaming video

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: 15814850

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: JP

122 Ep: pct application non-entry in european phase

Ref document number: 15814850

Country of ref document: EP

Kind code of ref document: A1