WO2018146996A1 - 通信装置、方法、及びプログラム - Google Patents
通信装置、方法、及びプログラム Download PDFInfo
- Publication number
- WO2018146996A1 WO2018146996A1 PCT/JP2018/000647 JP2018000647W WO2018146996A1 WO 2018146996 A1 WO2018146996 A1 WO 2018146996A1 JP 2018000647 W JP2018000647 W JP 2018000647W WO 2018146996 A1 WO2018146996 A1 WO 2018146996A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- quality
- difference
- setting
- videos
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/654—Transmission by server directed to the client
- H04N21/6547—Transmission by server directed to the client comprising parameters, e.g. for client setup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26258—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/266—Channel 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/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/437—Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
Definitions
- the present invention relates to a communication device, a method, and a program, and more particularly, to media data streaming technology.
- a video is divided into small time unit segments, and a URL (Uniform Resource Locator) for acquiring the segments is described in a file called a playlist.
- the terminal device acquires this playlist and acquires a desired video using information described in the playlist.
- URLs for a plurality of versions of video segments in the playlist the terminal device can acquire an optimal version of the video segment according to the capability of the own device and the communication environment.
- Patent Document 1 describes a method in which one picture of video is divided, encoded as a plurality of independently decodable areas, and transmitted using MPEG-DASH.
- the present invention prevents an entire video from giving a low-quality impression due to a quality difference between a plurality of areas in a system capable of acquiring videos corresponding to a plurality of areas with different qualities.
- a communication apparatus is a communication apparatus that transmits notification information referred to by a client to request a video to the client, wherein the first set corresponds to a first plurality of videos having different quality ranks. And a plurality of sets including a second set corresponding to a second plurality of videos having different quality ranks, information on a set group in which settings relating to the difference in quality rank are shared, and a plurality of videos transmitted to the client Generating information for expressing the set group by a common identifier, and information indicating the difference between the quality ranks of the set groups, and the notification information generated by the generating means to the client Transmitting means for transmitting.
- the present invention in a system capable of acquiring videos corresponding to a plurality of areas with different qualities, it is possible to prevent the entire video from giving a low-quality impression due to a quality difference between the plurality of areas.
- FIG. 1 is a diagram illustrating a configuration example of a communication system.
- FIG. 2A is a diagram illustrating an example of video tiling and classification.
- FIG. 2B illustrates an example of video tiling and classification.
- FIG. 2C is a diagram illustrating an example of video tiling and classification.
- FIG. 2D illustrates an example of video tiling and classification.
- FIG. 2E is a diagram illustrating an example of video tiling and classification.
- FIG. 3 is a diagram for explaining an outline of processing for acquiring a tile by the client.
- FIG. 4 is a block diagram illustrating a hardware configuration example of the server.
- FIG. 5 is a block diagram illustrating a functional configuration example of the server.
- FIG. 6 is a block diagram illustrating a hardware configuration example of the client.
- FIG. 7 is a block diagram illustrating a functional configuration example of a client.
- FIG. 8 is a diagram showing a description example of an MPEG-DASH MPD file.
- FIG. 9 is a diagram illustrating a description example of an MPD file of MPEG-DASH.
- FIG. 10 is a diagram illustrating a description example of an MPD file of MPEG-DASH.
- FIG. 11 is a diagram illustrating a description example of an MPD file of MPEG-DASH.
- FIG. 12A is a flowchart illustrating an example of a flow of processing executed by the server.
- FIG. 12B is a flowchart illustrating an example of a flow of processing executed by the server.
- FIG. 13 is a flowchart illustrating an example of a flow of processing executed by the client.
- FIG. 1 shows a configuration example of a communication system according to the present embodiment.
- the communication system includes a client 101 and a server 102, and the client 101 and the server 102 are connected to each other via a network 103.
- the client 101 and the server 102 may be directly connected without going through the network 103.
- the client 101 and the server 102 may directly communicate by forming a wireless ad hoc network.
- the client 101 is a communication device including a display function, such as a DTV (Digital TV), an HMD (Head Mounted Display), a smartphone, a tablet, or a display-integrated personal computer (PC).
- the client 101 does not necessarily have to be configured as a device, and may be, for example, a Web browser or other installed application in various devices as described above.
- the client 101 does not necessarily have a display function, and may be a projector having a projection device, a PC that can display information on an external display, or the like.
- the client 101 may be a multi-projector having a plurality of projection devices.
- the client 101 may be an intermediate device that mediates communication in a communication path between the information display device and the server 102, such as a proxy device or a device included in a CDN (Contents Deliver Network).
- CDN Contents Deliver Network
- the server 102 is, for example, a digital camera, a digital video camera, a network camera, a projector, a mobile phone, a smartphone, a PC, a general-purpose server device, and the like, and is a communication device that can function as a server device that transmits video.
- the server 102 is illustrated as a single device. However, for example, a plurality of devices arranged in a distributed manner on the cloud share the functions of the server 102 and execute them. May be.
- the network 103 is a communication network in which the client 101 and the server 102 are connected, and signals transmitted by these devices are transferred by the network 103 and received by the other device.
- the network 103 is an arbitrary network such as the Internet or an intranet, a wired network, or a wireless network.
- the network 103 may be a network in which various types of interfaces are mixed, such as a wired network in some sections and a wireless network in other sections.
- any wireless communication interface such as a public wireless communication such as LTE in 3GPP, a wireless LAN compliant with the IEEE 802.11 standard, Bluetooth (registered trademark), or the like can be used.
- 3GPP is an acronym for 3rd Generation Partnership Project
- LTE is an acronym for Long Term Evolution.
- IEEE is an acronym for Institute of Electrical and Electronics Engineers.
- the wired network for example, an interface conforming to the Ethernet (registered trademark) standard can be used, but any other interface may be used.
- the network 103 may have any size such as a LAN (Local Area Network) or a WAN (Wide Area Network).
- the client 101 can acquire a video divided into a plurality of pixel areas and reproduce one video.
- the resulting pixel area is referred to as a “tile”. That is, the “tile” corresponds to a partial area of the video that is finally played back.
- the “video” may be one in which each of the included frames (pictures) is compressed as a still image, or each frame may be compressed as a moving image. It may be uncompressed.
- Each tile has a plurality of videos corresponding to a plurality of different qualities
- the client 101 acquires one video from the set of the plurality of videos. Then, the client 101 acquires one video from each of the plurality of sets including at least the first set related to the first plurality of videos and the second set related to the second plurality of videos, and combines them to form one video. Can be played.
- the server 102 notifies the client 101 of a list of a plurality of videos included in each of the plurality of sets. At this time, the list can include, for example, information on the location of each of a plurality of videos included in each of a plurality of sets (such as a URL (Uniform Resource Locator) of an acquisition destination).
- a URL Uniform Resource Locator
- the setting information related to the quality difference between the plurality of sets is notified.
- the setting information related to the quality difference is, for example, information indicating that the quality difference between multiple sets is recommended to be within a certain range, or what the quality difference between multiple sets is. It may be information indicating that it may be. Further, the setting information related to the quality difference may be information indicating that the maximum value of the quality difference between a plurality of sets must be within a predetermined range. As a result, for example, the client 101 is notified of the setting indicating that the quality difference between a plurality of sets should be reduced, so that the client 101 does not acquire videos having greatly different quality between tiles.
- the plurality of sets described above are classified into sets (set groups) in which settings related to quality differences are shared, and information indicating the settings for each set is notified to the client 101. .
- sets set groups
- the configuration of the client 101 and the server 102 and the flow of processing to be executed will be described.
- FIG. 2A shows a picture at a certain time in a video having a width of 7680 pixels and a height of 4320 pixels.
- the picture in FIG. 2A is divided into tiles having an equal size.
- the tile dividing method is not necessarily limited thereto. For example, when a tile is divided into 3 ⁇ 3, even if the size of the tile is obtained by dividing the picture so that the size of the center tile is increased and the size of the surrounding tile is reduced, etc. The following discussion is applicable.
- FIG. 2D shows a state in which the tiles divided as shown in FIG. 2B are classified into a set 201 composed of tiles 1 and 2 and a set 202 composed of tiles 3 and 4.
- FIG. 2E shows a state where tiles classified as shown in FIG. 2C are classified into three sets.
- nine tiles are a first set 203 (first set group 203) composed of tile 1, tile 2, tile 4, and tile 5, and a second composed of tile 3 and tile 6.
- the set 204 (second set group 204) and the third set 205 (third set group 205) configured by the tile 7, tile 8, and tile 9 are classified.
- classification is performed such that adjacent tiles are the same set, but the present invention is not limited to this.
- non-adjacent tiles such as tile 1, tile 5, and tile 9 may be classified into one set. Further, all tiles may be classified into one set (that is, classification may not be performed).
- the video encoding method is not particularly limited.
- the encoding scheme may be HEVC (High Efficiency Video Coding), AVC (Advanced Video Coding), VP8 or VP9, but other encoding schemes may be used.
- encoding of video divided into tiles may be performed individually for each tile or may be performed across a plurality of tiles.
- LHEVC Layerered HEVC
- SVC Scalable Video Coding
- MVC Multiview Video Coding
- the number of layers may be two or more.
- layering and tiling may be applied in combination. For example, a low-quality base layer may not be tiled and a high-quality enhancement layer may be a tiled video.
- the video that has been encoded is stored in the video container.
- the video container format may be, for example, ISO BMFF, HEVC File Format, MPEG2-TS, Common Media Application Format, or WebM, but other formats may also be used.
- ISO is an acronym for International Organization for Standardization
- BMFF is Base Media File Format.
- a video is stored in a container format, it is segmented into a plurality of files divided in the time direction.
- the video stored in the server 102 (or other device) can be segmented into a plurality of files.
- the present invention is not limited to this, and the video is stored as a single file without being segmented. Also good.
- the client 101 can acquire a segment by designating a specific range (byte range) of the file.
- MPD Media Presentation Description
- MPEG-DASH Media Presentation Description
- other protocols that use playlist descriptions such as HTTP Livestreaming and Smooth Streaming may be used.
- the video acquired by the client 101 may have a different quality rank for each tile.
- the quality rank here may be an evaluation value that takes a higher value as the values of the bit rate, resolution, sampling rate, and the like are higher. Note that the quality rank may be determined in any way as long as the ranking based on superiority or inferiority is possible based on any standard different from the bit rate, resolution, and sampling rate.
- HQ high quality
- MQ medium quality
- LQ Low Quality
- Rank videos will be prepared.
- high-quality videos are called tiles 1a to 9a
- medium-quality videos are called tiles 1b to 9b
- low-quality videos are called tiles 1c to 9c.
- the difference in quality rank between high quality and medium quality is “1”
- the difference in quality rank between medium quality and low quality is “1”.
- the quality rank difference between the low quality and the low quality is “2”. That is, the quality is ranked in three stages. Note that the video in each tile is generated as a bitstream for each quality rank.
- the server 102 for example, a list of a plurality of videos respectively corresponding to a plurality of quality ranks for each of a plurality of tiles, information indicating a set after classification of tiles, and setting information regarding a difference in quality rank in each set Is notified to the client 101.
- the information indicating the set of tiles is, for example, information indicating which of the first set 203 to the third set 205 (the first set group 203 to the third set group 205) described above.
- a recommended value of the difference in quality rank that does not give the viewer a sense of incongruity for example, it is estimated that there is little discomfort by experiment etc.
- a quality rank difference setting is made based on an arbitrary criterion, such as a quality rank difference value that is not allowed to be played back unless the settings specified in each set are satisfied. sell. This specific notification method will be described later.
- the client 101 performs video playback according to the notified information.
- the client 101 can determine which of the tiles should be acquired based on the communication environment in the own device. For example, the client 101 can acquire high-quality video in a situation where high-speed communication is possible.
- the client 101 acquires a video of a certain tile according to the setting relating to the difference in the quality rank, the quality rank of the video to be acquired and the video of other tiles included in the set to which the tile belongs.
- the difference from the quality rank is made to satisfy the set condition.
- the setting is an arbitrary setting such as a recommended setting
- the client 101 may acquire a video in which the quality rank difference of the tiles in the set does not satisfy the set condition.
- the client 101 does not acquire a video that does not satisfy the condition for which the quality rank difference of the tiles in the set is set. For example, if the first set 203 is set to have a maximum tile quality rank difference of 1, the client 101 receives the quality rank of the video received for the tiles in the set. The difference should be within 1.
- the client 101 acquires the tile 2a or the tile 2b for the tile 2, for example. The same applies to the tile 4 and the tile 5. Therefore, in the example of the set 304 in FIG.
- the tile 2a, the tile 4b, and the tile 5b are acquired.
- the highest quality rank in the set 304 is HQ, and the lowest quality is MQ, so the maximum difference in quality rank is “1”.
- the client 101 can acquire the tile 1b or the tile 1c even in a communication state in which the tile 1a can be acquired.
- the client 101 since the tiles 3 and 6 belong to the second set 204 different from the tile 1, the client 101 has the video to be acquired for the tiles 3 and 6 regardless of the quality class of each tile belonging to the first set 203. Can be determined.
- the maximum value of the difference in tile quality rank is set to 2 for the second set 204.
- the client 101 acquires the tile 3a for the tile 3 as in the set 305 in FIG. 3, the client 101 acquires any of the tile 6a, the tile 6b, and the tile 6c for the tile 6. That is, in this case, in the second set 204, it can be understood that there is no restriction on the difference in tile quality rank.
- the maximum difference in quality rank in the set 305 that is, the difference in quality rank between the tile 3 and the tile 6, is “2”.
- the set 205 is set so that the maximum value of the difference in tile quality rank is 2.
- the client 101 makes the difference between the best quality and the worst quality among the tile 7, the tile 8, and the tile 9 be within “2”.
- the tile 7c, the tile 8c, and the tile 9c are acquired for each of the tile 7, the tile 8, and the tile 9. In this case, since the best quality and the poorest quality are both LQ, the maximum difference in quality rank is “0”.
- the client 101 considers the relationship with the quality rank of the video received with respect to the other tiles from the set of videos including a plurality of videos having different quality ranks with respect to the tile, and receives the received video. You can choose. At this time, a plurality of tiles are classified, and a setting relating to the difference in quality rank is performed for each classification, thereby reducing the uncomfortable feeling given to the viewer without imposing unnecessary restrictions on each pixel region of the video. be able to.
- each tile belongs to only one set.
- the present invention is not limited to this. That is, some tiles such as tiles at the boundary of a set may be classified so as to belong to two or more sets.
- the quality rank stage is three stages, but the present invention is not limited to this.
- videos ranked in two stages or four or more stages may be prepared.
- FIG. 3 shows a state where three different quality videos are prepared for each tile, but the present invention is not limited to this.
- 5 different quality videos are prepared for tile 1
- 2 different quality videos are prepared for tile 2
- different numbers of different quality videos are prepared for each tile. May be.
- a tiled video is described as an example, but the present invention is not limited to this. That is, the following discussion can be applied to playback of one video combining a plurality of different quality videos and playback of one audio combining a plurality of different quality audios.
- a method of reproducing a plurality of different videos on a single screen For example, a method of reproducing two videos of the whole and a part cut out, or a method of generating a sound data by synthesizing a plurality of sounds
- the following argument can be applied.
- the following discussion can be applied to a system in which a plurality of videos obtained from a plurality of cameras are arranged like tiles and one video is reproduced.
- the server 102 includes, for example, a control unit 401, a storage unit 402, a display unit 403, an operation unit 404, an imaging unit 405, an encoding unit 406, a communication unit 407, a wired LAN interface 408, and a system bus 409.
- the control unit 401 controls the overall operation of the server 102 by controlling other components through the system bus 409, for example.
- the control unit 401 may be one or more processors such as a CPU (Central Processing Unit), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), a DSP (Digital Signal Processor), and the like.
- the storage unit 402 stores and manages various data.
- the storage unit 402 can be, for example, a memory such as SRAM (Static RAM) or DRAM (Dynamic RAM), or a mass storage device such as a hard disk drive.
- the display unit 403 is, for example, a liquid crystal panel configured to perform various displays under the control of the control unit 401.
- the operation unit 404 is, for example, a key or button that accepts an operation from the user.
- the display unit 403 and the operation unit 404 may be configured as one device by a touch panel, for example.
- the imaging unit 405 performs video imaging.
- the imaging unit 405 includes a lens and a sensor, for example.
- the encoding unit 406 performs video encoding processing.
- the encoding unit 406 may be configured by a dedicated circuit or the like.
- the control unit 401 executes a program stored in the storage unit 402, thereby encoding the video captured by the imaging unit 405. You may make it do.
- the communication unit 407 executes various communication processes via the wired LAN interface 408.
- the communication unit 407 includes a communication circuit such as a modem circuit, for example.
- the wired LAN interface 408 includes, for example, a photoelectric conversion device, and converts an optical signal received via an optical fiber into an electrical signal or converts an electrical signal into an optical signal under the control of the communication unit 407. Then, it can be transmitted via an optical fiber.
- the communication unit 407 performs wired communication.
- the communication unit 407 is not limited to this, and may perform wireless communication such as wireless LAN, Bluetooth (registered trademark), public mobile communication, or the like.
- the wired LAN interface 408 can be replaced with, for example, an antenna.
- the server 102 may have a plurality of communication interfaces. In the present embodiment, the server 102 captures video, but the server 102 may acquire video from another communication device.
- one server device acquires and uses video.
- the server 102 may generate video based on data acquired from a plurality of devices.
- the server 102 may acquire a video generated based on data acquired from a plurality of devices from another device.
- the server 102 includes the encoding unit 406, but the server 102 may acquire data encoded in another device. Further, the server 102 may acquire only the location of the video without acquiring the video, and notify the client 101 of information regarding the location.
- FIG. 5 is a diagram illustrating a functional configuration example of the server 102.
- the server 102 includes, for example, a communication control unit 501, a display control unit 502, an operation control unit 503, a storage control unit 504, a TCP / IP communication control unit 505, a segment generation unit 506, a playlist generation unit 507, and an HTTP communication control unit 511. It is comprised including.
- the server 102 further includes a set setting unit 508, a set management unit 509, a quality difference information determination unit 510, and a set analysis unit 512.
- Each functional unit illustrated in FIG. 5 can be realized by causing the control unit 401 to execute a program stored in the storage unit 402, for example.
- a part or all of each function part, or a part of one function part may be hardware-ized.
- the communication control unit 501 controls the communication unit 407 to execute communication.
- the display control unit 502 controls the display unit 403 to display predetermined information. For example, the display control unit 502 may cause the display unit 403 to display a UI for accepting an operation from the user.
- the operation control unit 503 controls the operation unit 404 to accept an operation from the user.
- the storage control unit 504 controls the storage unit 402 to store, change, or delete various information.
- the TCP / IP communication control unit 505 uses the communication unit 407 to perform TCP / IP communication control with the client 101. In this embodiment, an example in which TCP / IP communication is used will be described. However, the present invention is not limited to this, and UDP (User Datagram Protocol) may be used.
- UDP User Datagram Protocol
- the segment generation unit 506 generates a segment to be transmitted to the client 101 from the video.
- the segment generation unit 506 generates a tiled segment.
- the segment generation unit 506 generates a plurality of segments having different quality ranks for one or more tiles.
- the segment transmitted by the server 102 may be a segment generated by another device.
- the playlist generation unit 507 generates a playlist that the client uses to acquire the video.
- a URL Uniform Resource Locator
- the playlist is an MPD (Media Presentation Description) file in MPEG-DASH.
- URLs of a plurality of videos respectively corresponding to a plurality of quality ranks for one tile are stored in the AdaptationSet element (Element). That is, AdaptationSet is an element corresponding to a set of a plurality of videos related to one tile.
- the playlist generation unit 507 describes information on a set to which the AdaptationSet belongs, an identifier of the set, and setting information regarding a quality rank difference for each AdaptSet set in the playlist. For example, in the state of FIG. 2D, tiles 1 to 4 belong to the set 201 or 202. For this reason, information indicating whether the AdaptationSet associated with each tile belongs to the set 201 or 202, the identifiers of the sets 201 and 202, and the setting information regarding the quality rank difference between the sets 201 and 202 are stored in the MPD file. .
- Information on quality rank differences is, for example, that there is no restriction on the maximum recommended quality rank difference, the maximum quality rank difference that must be protected, or the quality rank difference in the corresponding set.
- the set setting unit 508 classifies tiles and sets a set of tiles.
- the set management unit 509 associates and manages the set information set by the set setting unit 508 and the setting information related to the quality difference determined by the quality difference information determination unit 510.
- the quality difference information determination unit 510 determines the setting related to the quality rank difference for each set to which one or more AdaptationSets belong. For example, the quality difference information determination unit 510 can select the magnitude of the quality rank difference that does not give the viewer a sense of incongruity and can set it as a setting value for the quality rank difference.
- the HTTP communication control unit 511 performs communication processing as a server defined in HTTP (Hyper Text Transfer Protocol).
- the set analysis unit 512 performs video analysis in order to set a set of tiles to which the setting related to the common quality rank difference is applied.
- FIG. 6 is a diagram illustrating a hardware configuration example of the client 101.
- the client 101 includes, for example, a control unit 601, a storage unit 602, a display unit 603, an operation unit 604, a decryption unit 605, a communication unit 606, a wireless LAN interface 607, and a system bus 608.
- the control unit 601 comprehensively controls the operation of the client 101 by controlling other components through the system bus 608, for example.
- the control unit 601 can be, for example, one or more processors such as a CPU (Central Processing Unit), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), a DSP (Digital Signal Processor).
- the storage unit 602 stores and manages various data.
- the storage unit 602 can be, for example, a memory such as SRAM (Static RAM) or DRAM (Dynamic RAM), or a mass storage device such as a hard disk drive.
- the display unit 603 is, for example, a liquid crystal panel configured to perform various displays under the control of the control unit 601.
- the operation unit 604 is, for example, a key or button that receives an operation from the user.
- the display unit 603 and the operation unit 604 may be configured as one device, for example, by a touch panel.
- the decoding unit 605 performs video decoding processing.
- the decoding unit 605 may be configured by a dedicated circuit or the like.
- the control unit 601 decodes the acquired video by executing a program stored in the storage unit 602.
- the communication unit 606 executes various communication processes via the wireless LAN interface 607.
- the communication unit 606 includes a communication circuit such as a modem circuit, for example.
- the wireless LAN interface 607 includes, for example, an RF front end and an antenna.
- the wireless LAN interface 607 converts the signal generated by the communication unit 606 into a wireless signal and transmits the signal through the antenna.
- the communication unit 606 performs wireless LAN communication.
- the communication unit 606 is not limited thereto, and may perform wired communication via a wired LAN interface, for example, or Bluetooth (registered trademark).
- other wireless communication such as public mobile communication may be performed.
- the client 101 may have a plurality of communication interfaces.
- the display unit 603 is shown as one component of the client 101. However, for example, an external display device such as a display or a television connected by HDMI (registered trademark) or the like is used. May be. In this case, the client 101 can have a display control unit, for example.
- FIG. 7 is a diagram illustrating a functional configuration example of the client 101.
- the client 101 includes, for example, a communication control unit 701, a display control unit 702, an operation control unit 703, a storage control unit 704, a TCP / IP communication control unit 705, an HTTP communication control unit 707, and a playlist acquisition unit 713. Is done. Further, the client 101 further includes a segment analysis unit 706, a playlist analysis unit 708, a set management unit 709, a segment acquisition unit 710, a quality determination unit 711, and a playback control unit 712.
- Each functional unit illustrated in FIG. 7 can be realized by, for example, the control unit 601 executing a program stored in the storage unit 602. In addition, a part or all of each function part, or a part of one function part may be hardware-ized.
- the communication control unit 701 controls the communication unit 606 to execute communication.
- the display control unit 702 controls the display unit 603 to display predetermined information. For example, the display control unit 702 may cause the display unit 603 to display a video based on data received via the communication unit 606 and a UI for accepting an operation from the user.
- the operation control unit 703 controls the operation unit 604 to accept an operation from the user.
- the storage control unit 704 controls the storage unit 602 to store, change, or delete various information such as processing data and video.
- the TCP / IP communication control unit 705 uses the communication unit 606 to perform TCP / IP communication control with the server 102. In this embodiment, an example in which TCP / IP communication is used will be described.
- the segment analysis unit 706 controls the decoding unit 605 to decode a segment that is a video acquired from the server 102.
- the HTTP communication control unit 707 performs communication processing as a client defined in HTTP.
- the playlist acquisition unit 713 acquires a playlist from the server 102.
- the playlist analysis unit 708 analyzes the playlist acquired by the playlist acquisition unit 713 from the server 102.
- the playlist here is an MPD file.
- the MPD file a URL for accessing a specific segment at a specific timing is described.
- the MPD file describes information on a set to which the AdaptationSet corresponding to each tile belongs, an identifier of the set, setting information on a quality rank difference for each set, and the like.
- the playlist analysis unit 708 obtains various types of information such as a segment, a set of AdaptationSets, a set identifier, and setting information related to a quality rank difference for each set through analysis.
- the playlist analysis unit 708 can acquire the various types of information described above by analyzing a file such as an HTML file or a javascript file.
- the set management unit 709 manages information on a set of a plurality of AdaptationSets obtained by analysis by the playlist analysis unit 708 and information on a quality rank difference for each set.
- the segment acquisition unit 710 accesses the URL of each segment acquisition destination according to a playlist such as an MPD file, and acquires the segment.
- the acquisition source of each segment may be, for example, the server 102, but is not limited thereto, and may be a camera connected to another server or a network.
- the quality determination unit 711 determines a representation to be acquired based on the quality rank difference information managed by the set management unit 709 for each set of AdaptationSets. Representation refers to videos (segments) having different quality ranks related to the same tile included in one AdaptationSet.
- the segment acquisition unit 710 acquires the segment by accessing the acquisition destination URL determined by the quality determination unit 711 from one or more acquisition destination URLs included in each AdaptationSet.
- the playback control unit 712 performs playback processing of the video decoded by the segment analysis unit 706.
- the segment analysis unit 706 or the reproduction control unit 712 can execute a process of synthesizing videos corresponding to a plurality of separate pixel regions. At this time, for example, when a plurality of videos are taken by different cameras, if there are overlapping areas between the videos, the areas can be specified and combined.
- MPD file structure Next, some examples of MPD files (playlists) generated by the server 102 will be described with reference to FIGS. 8 to 11 show MPD files including items that are particularly useful for the description of the present embodiment, and other items may be further included. That is, the MPD file may include other parameters defined by, for example, the MPEG-DASH standard or a future extension, but in the present embodiment, these other parameters are omitted for simplicity.
- FIG. 8 shows an example of an MPD file when tile aggregation as shown in FIG. 2D is performed. Note that a similar MPD file can be configured even when tiles are assembled as shown in FIG. 2E.
- the tile identifier is represented by a number (“1” in the AdaptationSet element 801), but is not limited to this and is used as an identifier defined by the MPEG-DASH standard such as alphanumeric characters and symbols. It can be expressed as a string of possible characters.
- Representation elements 805 to 807 included in the AdaptationSet element 801 each store information on videos of different quality related to the tile 1.
- Representation elements 805 to 807 each include “id” that is an identifier of the element as an attribute.
- the representation elements 805 to 807 include “bandwidth” indicating the bandwidth of the corresponding video and “qualityRank” indicating the relative quality rank in one AdaptationSet element as attributes.
- the quality Ranking attribute is an attribute indicating that the smaller the value of the Representation element, the higher the quality of the video corresponding to the Representation element. In the example of FIG.
- the video quality corresponding to the Representation element 805 is the highest, then the video quality corresponding to the Representation element 806 is high, and the video quality for the Representation element 807 is the lowest.
- qualityRank indicates the quality rank in one AdaptationSet element as described above, and does not indicate the quality relationship with the video corresponding to the Representation element included in the other AdaptationSet elements.
- the AdaptationSet element 802 includes two Representation elements.
- the number of representations included for each AdaptationSet may be different.
- the video bandwidth and quality specified by the Representation element included in the AdaptationSet may be different for each tile.
- a SupplementalProperty element 808 is defined in order to define a set of AdaptationSets that share settings related to quality rank differences.
- the SupplementalProperty element 808 includes a “schemeIdUri” attribute.
- the schemeIdUri attribute defines the value “urn: mpeg: dash: quality_equivalence”.
- a device such as the client 101 can identify that the supplemental property element 808 is an element that defines a set sharing a setting related to a difference in quality rank (quality ranking).
- the SupplementalProperty element 808 includes a “value” attribute, and an aggregated AdaptationSet is defined by the value attribute.
- the value “1, 2, x: 3, 4, y” set in the value attribute includes the first set (first set group) by the AdaptationSet having the identifiers “1” and “2”, and the identifier is The AdaptationSet of “3” and “4” indicates that the second set (second set group) is configured. “X” is an identifier of the first set, and “y” is an identifier of the second set. In this embodiment, the symbol “:” is used to separate the two sets. As described above, the SupplementalProperty element 808 describes information that associates the identifier of the set with the identifier of the AdaptationSet belonging to the set in one section that is not delimited by the symbol “:”.
- identifiers of the first set and the second set as described above and AdaptationSets belonging to these sets may be used.
- “:” indicating a set delimiter is distinguishable from an AdaptationSet identifier or set identifier, and may be replaced with a predetermined symbol that allows the apparatus that receives the MPD file to recognize the set delimiter.
- the order of description “(identifier of AdaptationSet included in set), (identifier of the set)” is other order such as “(identifier of set), (identification of AdaptationSet included in the set)”, etc. It may be replaced with an order.
- the set identifier may be omitted.
- the identifier of the set is not limited to characters such as “x” and “y”, and may be expressed by a character string of an arbitrary length including arbitrary alphanumeric characters and symbols.
- a SupplementalProperty element 809 is further defined in order to make settings related to the difference in quality rank for each set.
- the difference in quality rank refers to, for example, a difference in qualityRank values in the Representation element corresponding to videos acquired for each of a plurality of AdaptationSets belonging to one set.
- the setting related to the difference in the quality rank may be, for example, to set the difference between the quality ranking values corresponding to the videos acquired for each of the plurality of AdaptationSets belonging to the set of the setting within a predetermined value.
- a setting may specify an optional requirement that is recommended to satisfy a condition related to the setting, or may specify an essential requirement that must satisfy the condition related to the setting.
- the information of the predetermined value is the setting information.
- the setting information can be specified as In addition, information indicating whether the set condition is arbitrary or essential may be included.
- the SupplementalProperty element 809 has an attribute “schemeIdUri”, and the schemeIdUri attribute defines the value “urn: mpeg: dash: max_quality_degradation”.
- a device such as the client 101 that has received this MPD file can recognize that the SupplementalProperty element 809 defines a setting relating to a difference in quality rank for each set. Note that settings other than the settings related to the difference in quality rank may be set for each set. In this case, for example, the “max_quality_degradation” portion of the above-described values can be replaced with another character string.
- the SupplementalProperty element 809 further has an attribute “value”, and the value attribute describes a setting related to a difference in video quality rank for each set.
- the value attribute is described as “1, x: 2, y”, for example.
- the symbol “:” is used to separate the setting information regarding the two sets.
- “X” and “y” are identifiers related to the set of AdaptationSets, and identifiers common to the SupplementalProperty element 808 are used.
- a set of AdaptationSets is expressed by a common identifier by the first SupplementalProperty element 808 and the second SupplementalProperty element 809.
- “1” and “2” in the value attribute indicate the set values of the quality rank difference values for the set of identifiers x and the set of identifiers y, respectively.
- the maximum value of the recommended quality rank difference is specified. For example, when two videos described in the AdaptationSet with ids “1” and “2” included in the set of identifiers x are simultaneously played by the “1, x” portion, the quality ranks of the two videos A setting that recommends that the difference is within “1” is shown.
- the SupplementalProperty element 809 describes information that associates a set identifier and a setting value applied to the set in one section that is not delimited by the symbol “:”.
- the client 101 plays back the video acquired based on the AdaptationSet element 801 and the AdaptationSet element 802 at the same time.
- the difference between the quality rankings is “0” between the video (segment) with the replenishment id “1.1” and the video with the repre- sentation id “2.1”. Therefore, the client 101 can determine that the settings recommended when simultaneously playing these videos are satisfied.
- the difference in quality ranking is “2” between the video with the replenishment id “1.3” and the video with the repre- sentation id “2.1”. For this reason, the client 101 can determine that the setting recommended when simultaneously playing these videos is not satisfied, that is, it is not recommended to play these videos simultaneously.
- SupplementalProperty element 809 is an example, and different expressions may be used for the same purpose.
- “:” indicating a delimiter between settings for two sets can be distinguished from a value used for the setting or a set identifier (x, y), and the device that receives the MPD file recognizes the delimiter of the set. May be replaced with a predetermined symbol.
- the description order of “(set value), (identifier of the set)” may be replaced with another order such as the order of “(set identifier), (set value)”.
- the set identifier may be omitted.
- the setting related to the difference in quality rank for a set of AdaptationSets means that the standard related to the difference in quality rank of the Representation in the AdaptationSet is shared. That is, in a set where settings are shared, if the setting value related to the difference in quality rank from other Adaptation Sets is “1” with respect to the first Adaptation Set, “1” is also applied to the second Adaptation Set in the set. It becomes.
- the Adaptation Set elements 801 and 802 having ids “1” and “2” share the setting related to the difference in quality rank.
- the setting value related to the difference in quality rank from other AdaptationSets is “1” for the AdaptationSet elements 801 and 802 as shown in the SupplementalProperty element 809.
- the settings may be set so that the same QualityRanking video is acquired in all the AdaptationSets in the set.
- the server 101 describes the SupplementalProperty element 808 in the MPD file, so that the client 101 can identify a set including a plurality of AdaptationSets.
- the server 102 describes the SupplementalProperty element 809 in the MPD file, so that the client can grasp the setting related to the difference in quality rank for each set of AdaptationSets.
- the identifier of the set (the above-mentioned “x” and “y”) is expressed by a common identifier so that the client 101 can easily recognize the relationship between these elements. Can do.
- the server 102 selects a setting related to a difference in quality rank when each of a plurality of videos defined by a plurality of AdaptationSets in one set is selected and played back simultaneously. Can be notified.
- the client 101 can acquire and play, for example, a recommended combination of videos based on the notification information. Therefore, the client 101 can play back the video without giving the user a sense of discomfort due to the quality difference between the replays that are played back simultaneously. As a result, the user experience can be improved.
- FIG. 9 shows an example of an MPD file in the case where tiles are aggregated as shown in FIG. 2E. It is obvious that the MPD file configuration shown in FIG. 9 can also be used when tiles are aggregated as shown in FIG. 2D.
- information of tiles 1 to 9 is described in AdaptationSet elements 901 to 909, respectively.
- the AdaptationSet elements 901 to 909 include one or more representation elements similar to the representation elements 805 to 807 in FIG. However, in FIGS. 9 to 11, these descriptions are omitted for the sake of simplicity.
- the MPD file in FIG. 9 includes a SupplementalProperty element 910 similar to the SupplementalProperty element 808 in FIG.
- a first set (first set group) of the identifier “x” is defined by an AdaptationSet whose ids are “1”, “2”, “4”, and “5”.
- a second set (second set group) with an identifier “y” by an AdaptationSet with ids “3” and “6” is an identifier “z” by an AdaptationSet with ids “7”, “8”, and “9”. Is defined as a third set (third set group).
- a SupplementalProperty element 911 is described as setting information related to the difference in quality rank for each set in a format different from the SupplementalProperty element 809 in FIG.
- the SupplementalProperty element 911 has the same configuration as that of the SupplementalProperty element 809 up to the description of the schemeIdUri attribute and its value.
- the SupplementalProperty element 911 describes an attribute “default_max_quality_gradation” that is not included in the SupplementalProperty element 809.
- the default_max_quality_degradation attribute may be defined when the same (default) quality rank difference setting is used for one or more sets. In the example of FIG.
- the value of the default_max_quality_degradation attribute is set to “2”.
- the description of the value attribute is basically the same as the description of the value attribute in the SupplementalProperty element 809.
- a set that uses the value of the default_max_quality_degradation attribute as a setting related to a difference in quality rank among the plurality of sets is not described in the value attribute. That is, for a set that is not described in the value attribute, the value specified by the default_max_quality_degradation attribute is used as a setting related to the difference in quality rank.
- there is a description in the value attribute for the set of identifiers x but there is no description in the value attribute for the set of identifiers y and z.
- the set of identifiers y and z is treated as having a setting value “2” regarding the difference in quality rank.
- “d” here is a value (“2” in the example of FIG. 9) specified by the default_max_quality_degradation attribute.
- the video of the quality rank “2” in the second set is within the recommended range. . That is, even if the same setting is used, the selection of the second set of videos is performed regardless of the video quality rank acquired in the first set.
- the identifiers related to the set of AdaptationSets are expressed by common identifiers in the SupplementalProperty elements 910 and 911.
- the device that has received this MPD file can clearly identify the relationship between the SupplementalProperty element 910 and the SupplementalProperty element 911.
- the server 102 defines the setting related to the difference of the quality rank commonly used in one or more sets, thereby reducing the description amount of the MPD file when a plurality of sets use the same setting. be able to.
- the server 102 since the server 102 only needs to execute the same processing for the plurality of sets by defining the setting related to the difference in quality rank used in common for the plurality of sets, the processing of the client 101 The load can be reduced.
- FIG. 10 shows an example of an MPD file in the case where tiles are aggregated as shown in FIG. 2D.
- the MPD file in FIG. 10 includes one SupplementalProperty element 1001 instead of the two SupplementalProperty elements 808 and 809 in FIG. That is, a single SupplementalProperty element 1001 defines the definition of a set of AdaptationSets and settings related to the difference in quality rank for each set.
- the SupplementalProperty element 1001 has a configuration similar to that of the SupplementalProperty element 808 with respect to the schemeIdUri attribute and its value.
- the SupplementalProperty element 1001 has a value “1, 2, 1: 3, 4, 2” different from the SupplementalProperty elements 808 and 809 in the value attribute.
- the symbol “:” indicates a delimiter of information regarding the two sets. That is, “1, 2, 1” indicates information regarding the first set (first set group), and “3,4, 2” indicates values regarding the second set (second set group).
- the last value (the rightmost value) is a value indicating a setting relating to the difference in quality rank in the set
- the other values indicate the ids of AdaptationSets belonging to the set.
- “1, 2, 1” indicates that the set value related to the difference in quality rank is “1” for a set of AdaptationSets with ids “1” and “2”.
- “3, 4, 2” indicates that the set value related to the difference in quality rank is “2” for a set of AdaptationSets with ids “3” and “4”.
- the SupplementalProperty element 1001 has the same meaning as the combination of the SupplementalProperty element 808 and the SupplementalProperty element 809 in FIG.
- the order of the AdaptationSet identifier and the setting information related to the quality rank difference is not limited to this, and for example, the setting information related to the quality rank difference may be arranged first (on the left side).
- the description amount of the MPD file can be reduced by the server 102 describing the identifier of the AdaptationSet belonging to the set and the information related to the setting related to the difference of the quality rank in the set in a single SupplementalProperty element.
- FIG. 11 shows an example of an MPD file when tiles are aggregated as shown in FIG. 2E. It is obvious that the MPD file configuration shown in FIG. 11 can be used even when tiles are assembled as shown in FIG. 2D.
- the MPD file in FIG. 11 includes one SupplementalProperty element 1101 instead of the two SupplementalProperty elements 910 and 911 in FIG.
- a single SupplementalProperty element 1101 defines the definition of a set of AdaptationSets and settings related to the difference in quality rank for each set.
- the SupplementalProperty element 1101 has a configuration similar to that of the SupplementalProperty element 910 with respect to the schemeIdUri attribute and its value. Also, the SupplementalProperty element 1101 has the same configuration as the SupplementalProperty element 911 with respect to the default_max_quality_degradation attribute. On the other hand, the SupplementalProperty element 1101 has a value “(1,2,4,5), 1: (3,6) :( 7,8,9)” different from the SupplementalProperty elements 910 and 911 in the value attribute.
- the symbol “:” indicates a delimiter of information regarding the two sets.
- This configuration can be said to be a configuration in which the value specified by the default_max_quality_degradation attribute is omitted as a value related to the setting related to the difference in quality rank in the SupplementalProperty element 1001 of FIG. That is, the SupplementalProperty element 1101 has a configuration in which the SupplementalProperty element 1001 in FIG. 10 and the SupplementalProperty elements 910 and 911 in FIG. 9 are combined.
- “(1, 2, 4, 5), 1” is a set (first set group) of AdaptationSets with ids “1”, “2”, “4”, and “5”.
- the value related to the setting related to the difference in quality rank is “1”.
- “(3, 6)” is a set (second set group) of AdaptationSets with ids “3” and “6”, and a value related to the setting regarding the difference in quality rank is a value specified by the default_max_quality_degradation attribute. It shows that there is.
- “(7, 8, 9)” is a set of adaptation sets (third set group) with ids “7”, “8”, and “9”, and the value related to the setting related to the difference in quality rank is default_max_quality_degradation. Indicates that the value is specified by the attribute.
- the id of the AdaptationSet belonging to the set is enclosed in parentheses ("(" and ")"). This is because, for example, in a value such as “3, 6”, it may not be possible to distinguish whether “6” is the id of the AdaptationSet or a value related to the setting related to the difference in quality rank.
- parentheses do not have to be used, for example, by using characters that can distinguish between the ids of AdaptationSets belonging to the set and the values related to the setting relating to the difference in quality rank.
- a device that has received the MPD file can be represented by “1, 2, 4, 5 @ 1”, and the Adaptation Set with ids “1”, “2”, “4”, and “5” can be used. It is possible to determine that the value related to the setting related to the difference in quality rank is “1” in the set.
- values relating to the setting relating to the difference between the set and the quality rank may be described by other description methods. For example, the description order of the set information and the setting information related to the quality rank difference may be reversed, for example, the setting information related to the quality rank difference is described first (on the left side).
- the description amount of the MPD file can be reduced by the server 102 describing the identifier of the AdaptationSet belonging to each set and the setting information regarding the quality rank difference of the set in a single SupplementalProperty element. .
- the value of the schemeIdUri attribute is not limited to the value “urn: mpeg: dash: quality_equalence” defined in the present embodiment, and may be described in another character string. That is, any character string can be used as long as the information to be specified in the present embodiment can be discriminated, such as defining a set of AdaptationSets and defining information related to the setting related to the difference in quality rank. . Similarly, attribute names such as “default_max_quality_degradation” and “value” may be defined by another character string having the same significance. In addition, a character string indicating that the setting is not defined, such as “undefined”, may be defined in order to make the setting related to the difference in quality rank undefined.
- the same identifier may be assigned to sets in which settings related to the same quality rank difference are used.
- the value may be defined as “1, 2, 4, 5, x: 3, 6, y: 7, 8, 9, y”.
- the set of AdaptationSets with ids “3” and “6” and the set of AdaptationSets with ids “7, 8, 9” are different sets but have the same quality rank. It may be specified to use a setting for the difference. If one setting for quality rank differences is defined for all sets, do not describe information about adaptation set sets in the MPD file, but only describe setting information regarding quality rank differences. You may make it do.
- a set of AdaptationSets sharing settings related to the same quality rank difference is described explicitly, but the present invention is not limited to this.
- settings relating to quality rank differences may be individually defined.
- the value attribute is defined as “1, 1: 2, 1: 3, 2: 4, 2” in the SupplementalProperty element 808 (in this case, the SupplementalProperty element 809 is omitted).
- “1, 1” indicates that the setting value regarding the difference in quality rank of AdaptationSet with id “1” is 1.
- each of “2, 1”, “3, 2”, and “4, 2” has a setting value related to the difference in the quality rank of the adaptation set with ids “2”, “3”, and “4”, respectively. ”,“ 2 ”, and“ 2 ”.
- the SupplementalProperty element for the MPD, the description method of each attribute, and the identifier are not limited to this example.
- the setting related to the difference of the quality ranks related to one AdaptationSet can be a setting that is applied to the set of AdaptationSets having the same setting value as one set, for example.
- the setting related to the difference in the quality rank regarding one Adaptation Set may be a setting related to a difference that occurs with respect to a plurality of videos related to the same tile due to, for example, a change over time.
- a set of AdaptationSets is defined by one element, but a SupplementalProperty element may be defined for each collection of AdaptationSets.
- a SupplementalProperty element is defined that includes information related to the setting related to the difference in quality rank and information that defines the AdaptationSet belonging to the set.
- the contents indicated by the SupplementalProperty elements 808 and 809 in FIG. 8 are expressed by two other SupplementalProperty elements.
- the two SupplementalProperty elements each relate to a set to which an adaptation set with ids “1” and “2” belongs and a set to which adaptation sets with ids “3” and “4” belong.
- These SupplementalProperty elements are expressed as follows, for example.
- the elements, identifiers, and attributes defined in this embodiment are not limited to elements, identifiers, and attributes.
- a set of AdaptationSets, and a set value, a set, and a set value regarding a difference in quality rank shared by each set And the like may be defined.
- a setting related to a difference in quality rank common to the AdaptationSet defined in the element may be defined, or other existing elements, identifiers, and attributes may be used. New elements, identifiers, and attributes may also be defined.
- a setting value related to a quality rank difference from other representations may be undefined.
- the client 101 can select an arbitrary representation when a setting related to a difference in quality rank common to other adaptation sets is not defined for a certain adaptation set.
- the client 101 may select the same quality ranking as other adaptation sets.
- methods other than these may be used.
- AdaptationSets may not belong to a set.
- the SupplementalProperty element 910 can be configured by omitting the description regarding the AdaptationSet whose ids are “7”, “8”, and “9” as follows.
- the setting related to the difference in quality rank is defined as the difference in the qualityRank values included in the set of specific AdaptationSets, but is not limited thereto.
- the setting relating to the difference in quality rank may be performed based on actual values such as a bit rate, resolution, and sampling rate.
- the segment generation unit 506 generates an MPEG-DASH format segment (S1201).
- the segment generation unit 506 generates a plurality of segments having different qualities, and assigns a quality rank to the segments.
- the process of S1201 may be omitted, and in this case, a segment generated in the past may be used.
- the server 102 does not perform the process of S1201, and the segment generation and the quality rank assignment of the segment are performed by, for example, transmitting the segment. Done by the server.
- the playlist generation unit 507 starts generation of an MPD (playlist) defined by the MPEG-DASH standard (ISO / IEC 2309-1) or an extension of the standard (S1202).
- the MPD file stores a plurality of URLs for accessing a plurality of segments of different qualities for each of a plurality of divided tiles.
- An AdaptationSet element is described.
- the URL is described in a format stored in the Representation element.
- the information described in the MPD file is not limited to such information, and other information defined in the standard may be described.
- a quality Ranking attribute indicating the quality rank of the video acquired at the URL in the Representation element is described.
- the quality rank here is a ranking of the high quality of the video acquired according to a plurality of Representation elements defined in one AdaptationSet.
- the quality rank information may be described in an HTML file or Javascript file other than the MPD file.
- the set analysis unit 512 performs video analysis in order to set a set of AdaptationSets that should share the settings related to the difference in quality rank (S1203).
- the set analysis unit 512 may set a set by using the information of the tile set in advance, and in that case, the video may not be analyzed.
- the set setting unit 508 sets a set of AdaptationSets based on the analysis result by the set analysis unit 512 (S1204).
- the set management unit 509 manages the set information set by the set setting unit 508, that is, the identifier of the AdaptationSet included in each set.
- the set management unit 509 defines an identifier for identifying the set for each set.
- the playlist generation unit 507 determines whether or not there is one set managed by the set management unit 509 (S1205).
- the playlist generation unit 507 determines that there are a plurality of sets managed by the set management unit 509 (NO in step S1205), it describes information on the identifiers of the adaptation sets belonging to each of the plurality of sets in the MPD file (S1206). ).
- the playlist generation unit 507 defines the SupplementalProperty element as described with reference to FIGS. 8 to 11, and stores therein the identifiers of AdaptationSets belonging to each set.
- the quality difference information determination unit 510 determines a setting relating to a difference in quality rank to be used for each set of AdaptationSets (S1207).
- the set management unit 509 manages the setting related to the difference in quality rank for each set determined by the quality difference information determination unit 510 in association with each set.
- the playlist generation unit 507 determines whether the setting related to the difference in quality rank managed by the set management unit 509 is the same value for all sets (S1208). When the playlist generation unit 507 determines that the setting regarding the difference in quality rank is different from that of other sets in at least some of the sets (NO in S1208), the playlist generation unit 507 sets the identifier for each set managed by the set management unit 509. It is described in the MPD file (S1209). For example, the playlist generation unit 507 stores the identifiers (eg, “x”, “y”, “z”) of each set in the SupplementalProperty element as described with reference to FIGS.
- the playlist generation unit 507 determines whether to use a common setting value for the setting value related to the difference in quality rank for each set managed by the set management unit 509 (S1210). At this time, the playlist generation unit 507 can determine, as a common setting value, a value that is applied to the largest set among the settings related to the difference in quality rank managed by the set management unit 509. . Note that the common setting value may be determined based on other methods. Further, the playlist generation unit 507 can determine whether or not to use such a common setting value by determining whether or not the description amount of the MPD file is reduced by using the common setting value, for example. . However, this is only an example, and the playlist generation unit 507 may determine whether to use a common setting value based on other criteria.
- the playlist generation unit 507 determines that the common setting value is not used (NO in S1210), the setting value for each set related to the difference in quality rank managed by the set management unit 509 is described in the MPD file ( S1211).
- the playlist generation unit 507 includes descriptions such as the SupplementalProperty element 809 in FIG. 8 and the SupplementalProperty element 1001 in FIG. 10 in the MPD file.
- the playlist generation unit 507 when it is determined that the common setting value is used (YES in S1210), the playlist generation unit 507 describes the common setting value in the MPD file (S1212).
- the playlist generation unit 507 describes the common setting value in the MPD file as the “default_max_quality_degradation” attribute described with reference to FIGS. 9 and 11, for example.
- the playlist generation unit 507 describes, in the MPD file, setting values related to the difference in quality rank applied to the set for which the common setting value is not applied (S1213).
- the playlist generation unit 507 describes other information necessary for the client 101 to acquire and play back the segment, which is not described in the present embodiment, in the MPD file, and completes the generation of the MPD file ( S1214).
- the server 102 starts video transmission in accordance with the MPEG-DASH format via the HTTP communication control unit 511. (S1215).
- the server 102 transmits only the MPD file to the client 101 and does not need to transmit the video.
- the client 101 accesses a device other than the server 102 according to the MPD file received from the server 102, and acquires a segment corresponding to each tile.
- the playlist generation unit 507 determines whether to update the MPD file (S1216). If the playlist generation unit 507 determines not to update the MPD file (NO in S1216), This process ends. On the other hand, when it is determined that the MPD file is to be updated (YES in S1216), the playlist generation unit 507 returns the process to S1202.
- the playlist generation unit 507 determines in S1205 that there is only one set managed by the set management unit 509 (YES in S1205), it describes the identifier of the AdaptationSet belonging to the set in the MPD file (S1217). ). That is, the playlist generation unit 507 describes the identifier of the AdaptationSet in one set sharing the setting related to the quality rank difference in the MPD file. Note that the playlist generation unit 507 does not need to perform the process of S1217 when the settings related to the difference in quality rank are applied to all AdaptationSets. After that, the playlist generation unit 507 describes setting values related to the quality rank difference in the MPD file (S1218).
- the playlist generation unit 507 determines that the settings related to the difference in quality rank are the same for all sets (YES in S1208), the identifier for each set is not described in the MPD file, and the difference in quality rank is set.
- the setting value for the setting is described in the MPD file (S1218). After the process of S1218, the process proceeds to S1214.
- the server 102 does not need to perform the processing of S1210, S1212, and S1213 when the common setting value is not used (for example, when the MPD file is configured as shown in FIGS. 8 and 10). In this case, the server 102 moves the process to S1211 after executing the process of S1209.
- the server 102 always uses a common setting value (for example, when the MPD file is configured as shown in FIGS. 9 and 11)
- the processing of S1210 and S1211 may not be performed. In this case, the server 102 moves the process to S1212 after executing the process of S1209.
- the server 102 can move the process to S1217 after executing the process of S1203. Furthermore, when defining a common setting value for all AdaptationSets without describing the AdaptationSet id, the server 102 may move the process to S1219 after executing the process of S1203.
- each processing step shown in the flowcharts of FIGS. 12A and 12B may be replaced with a process different from the contents described here, or the order of the processes may be changed.
- the playlist generation unit 507 may perform processes such as S1206, S1209, S1211, and S1213 for describing information in the MPD file before the process of S1215, or at other arbitrary timings. You may go.
- the video analysis and adaptation set collection setting (S1203 and S1204) are performed in parallel with the video segment generation (S1201), for example, before the start of MPD file generation (the processing of S1202). It may be done before).
- the description amount of the MPD file can be reduced when there is one AdaptationSet set.
- the description amount of the MPD file can be reduced when common settings are applied to all of the AdaptationSet sets.
- the MPD is defined by defining the common setting value only once. The amount of description can be reduced. As a result, the processing load on the server 102 and the client 101 can be reduced.
- the playlist acquisition unit 713 acquires an MPD file from the server 102 via the HTTP communication control unit 707 (S1301), and the playlist analysis unit 708 analyzes the acquired MPD file (S1302).
- the playlist analysis unit 708 acquires information related to the set of AdaptationSets based on the analysis result of the MPD file, and stores the set information in the set management unit 709 (S1303). If the playlist analysis unit 708 analyzes the MPD file and determines that the set information does not exist, the client 101 may acquire the set information from an HTML file, a javascript file, or the like provided from the server 102. .
- the playlist analysis unit 708 acquires a setting value related to the difference in quality rank for each set of AdaptationSets based on the analysis result of the MPD file, associates it with the set information stored in the set management unit 709, and sets the set management unit 709. (S1304). If the playlist analysis unit 708 determines that the setting value related to the difference in quality rank is not defined in the MPD file, the client 101 acquires the setting value through an HTML file, a javascript file, or the like provided from the server 102. Yes. In addition, when it is determined that a common setting value common to one or more sets is defined, the client 101 determines that a setting value of the set of AdaptationSets is not explicitly defined. Common setting values may be applied. Note that if the MPD acquired from the server 102 does not include setting information related to the difference in quality rank, the client 101 is based on other values that can be acquired from the MPD, such as bit rate, resolution, and sampling rate. You may define the setting value independently.
- the quality determination unit 711 selects a video to be acquired (representation including information related to the acquisition target video) based on the setting related to the difference in quality rank for each of the plurality of AdaptationSets (S1305).
- the segment acquisition unit 710 acquires from the server 102 an initialization segment and a media segment necessary for video playback determined by the quality determination unit 711 (S1306, S1307).
- the segment analysis unit 706 analyzes the acquired segment and causes the display unit 603 to display a video based on the segment via the display control unit 702 (S1308).
- the quality determination unit 711 determines whether or not to change the quality of the acquired video (tile) (S1309).
- the timing for determining whether or not to change the quality of the acquired video may be another timing, and this determination may be performed at an arbitrary timing. For example, this determination may be performed during the media segment acquisition process (S1307) or during the playback process (S1308). Further, for example, this determination can be made when a part or all of the AdaptationSet displayed by the client 101 is changed by a user operation. Further, the client 101 may change the quality of the acquired video by determining that there is no room in the network bandwidth when the segment acquisition speed is slow. This determination may be performed for each Adaptation Set (for each tile). For example, when the video acquisition speed for some tiles is slow, it may be determined to change the quality of the video. By the processing of S1309, the acquired video can be dynamically changed according to a change in the situation such as the network bandwidth.
- the quality determination unit 711 returns the process to S1305, and changes the video quality related to other tiles based on the change and the set value. You can decide what you need. Note that the client 101 may advance the process to S1306 without performing the process of S1305 when changing the quality of the video regarding all the acquired tiles similarly.
- the segment acquisition unit 710 determines whether or not to end the acquisition of the media segment (S1310). If it is determined that the acquisition of the media segment is to be ended (YES in S1310), the client 101 ends the process. If it is determined that the acquisition of the media segment is not to be ended (NO in S1310), the process proceeds to S1307. return.
- processing steps described in the flowchart are not limited to the steps and order described here.
- the process of S1305 may be executed after the initialization segment acquisition process (S1306), and the determinations of S1309 and S1310 may be performed in the reverse order.
- the client 101 may execute only the processes of S1303 to S1305.
- the setting information about the adaptation set, the identifier of each set, and the difference in quality rank are described in the MPD file.
- the present invention is not limited to this.
- some or all of the information may be described in an HTML file or a JavaScript file, or these pieces of information may be dynamically acquired through the JavaScript file.
- a client that does not have the ability to analyze the elements and attributes of the MPD file can acquire information about the set of AdaptationSet, the identifier for each set, and the setting information regarding the difference in quality rank for each set. become.
- the present embodiment has been described by taking as an example a video in which one picture is divided into tiles, the present invention is not limited to this.
- the above-described method described in this embodiment can be applied.
- the above-described method according to the present embodiment can be applied to a case where a plurality of videos generated by different cameras are displayed side by side in a tile shape, a case where a plurality of audio data are combined and reproduced, and the like.
- the above-described method can also be applied when the configuration of the AdaptationSet changes during the video.
- the server 102 describes set information regarding a plurality of AdaptationSets, identifiers for each set, and quality rank differences for each set in the MPD file.
- the client 101 can perform control for selecting and playing a representation according to a setting related to a difference in quality rank when simultaneously playing a plurality of AdaptationSets.
- the user who uses the client 101 can view the video without worrying about the quality difference between the multiple videos that are played back simultaneously.
- the user experience of the user can be improved.
- the present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in the computer of the system or apparatus read and execute the program This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
- a circuit for example, ASIC
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
ビデオをリクエストするためにクライアントにより参照される通知情報をそのクライアントに送信する通信装置は、品質ランクが異なる第1複数ビデオに対応する第1セットと、品質ランクが異なる第2複数ビデオに対応する第2セットとを含む複数セットのうち、品質ランクの差に関する設定が共有されるセットグループに関する情報と、クライアントに対して送信される複数ビデオの品質ランクの差に関するセットグループごとの設定を示す情報とにおいて、セットグループを共通の識別子によって表現した通知情報を生成して、クライアントへ送信する。
Description
本発明は、通信装置、方法、及びプログラムに関するものであり、具体的にはメディアデータのストリーミング技術に関する。
近年、オーディオやビデオ等により構成されるストリーミング形式のコンテンツをユーザの端末装置にリアルタイムに送信するシステムが提供されている。このようなシステムにより、ユーザは、自身の端末装置を介して、ライブビデオ等の所望のコンテンツをリアルタイムで楽しむことができる。
また、端末装置の能力や端末装置が置かれる通信状況に応じて、取得するストリームを動的に変更する技術(MPEG-DASH、Http Live Streamingなど)が注目されている。これらの技術では、ビデオが細かい時間単位のセグメントに分割され、セグメントを取得するためのURL(Uniform Resouce Locator)がプレイリストと呼ばれるファイルに記述される。端末装置は、このプレイリストを取得して、プレイリストに記述されている情報を用いて所望のビデオを取得する。プレイリスト中に複数のバージョンのビデオセグメントに対するURLが記載されることにより、端末装置は、自装置の能力や通信環境に応じて、最適なバージョンのビデオセグメントを取得することができる。
また、ビデオは、時間単位のセグメントに分割されるだけでなく、ビデオ内のピクチャが複数の画素領域に分割されることによって複数のビデオに分割されうる。特許文献1では、ビデオの1枚のピクチャを分割し、独立してデコード可能な複数の領域として符号化し、MPEG-DASHを使用して送信する方法が記載されている。
しかしながら、複数の画素領域に対応する複数のビデオをそれぞれ異なる品質で取得する場合、その複数のビデオ間の品質差によっては、その複数のビデオに基づいて表示される1つのビデオの品質が不十分となるおそれがある。例えば、縦3×横3の合計9個の領域に対応するビデオに基づく1つのビデオを表示させる際に、中心の領域のみが高品質で、それ以外の領域の品質が著しく低品質である場合、ビデオ全体の品質が不十分であると視聴者が感じるおそれがある。
本発明は、複数の領域に対応するビデオを異なる品質で取得できるシステムにおいて、複数の領域間の品質差により、ビデオ全体が低品質な印象を与えることを防止する。
本発明の一態様に係る通信装置は、ビデオをリクエストするためにクライアントにより参照される通知情報を前記クライアントに送信する通信装置であって、品質ランクが異なる第1複数ビデオに対応する第1セットと、品質ランクが異なる第2複数ビデオに対応する第2セットとを含む複数セットのうち、前記品質ランクの差に関する設定が共有されるセットグループに関する情報と、クライアントに対して送信される複数ビデオの品質ランクの差に関する前記セットグループごとの設定を示す情報とにおいて、前記セットグループを共通の識別子によって表現した通知情報を生成する生成手段と、前記生成手段により生成された通知情報を前記クライアントへ送信する送信手段と、を有する。
本発明によれば、複数の領域に対応するビデオを異なる品質で取得できるシステムにおいて、複数の領域間の品質差により、ビデオ全体が低品質な印象を与えることを防止することができる。
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
図1は、通信システムの構成例を示す図である。
図2Aは、ビデオのタイル化及び分類の一例を説明する図である。
図2Bは、ビデオのタイル化及び分類の一例を説明する図である。
図2Cは、ビデオのタイル化及び分類の一例を説明する図である。
図2Dは、ビデオのタイル化及び分類の一例を説明する図である。
図2Eは、ビデオのタイル化及び分類の一例を説明する図である。
図3は、クライアントがタイルを取得する処理の概要を説明する図である。
図4は、サーバのハードウェア構成例を示すブロック図である。
図5は、サーバの機能構成例を示すブロック図である。
図6は、クライアントのハードウェア構成例を示すブロック図である。
図7は、クライアントの機能構成例を示すブロック図である。
図8は、MPEG-DASHのMPDファイルの記述例を示す図である。
図9は、MPEG-DASHのMPDファイルの記述例を示す図である。
図10は、MPEG-DASHのMPDファイルの記述例を示す図である。
図11は、MPEG-DASHのMPDファイルの記述例を示す図である。
図12Aは、サーバが実行する処理の流れの例を示すフローチャートである。
図12Bは、サーバが実行する処理の流れの例を示すフローチャートである。
図13は、クライアントが実行する処理の流れの例を示すフローチャートである。
以下、本発明の実施形態について、図面を参照しながら説明する。なお、以下の実施形態は、本発明の範囲を限定することを意図したものではなく、以下の実施形態に係る構成の少なくとも一部が省略されてもよいし、さらなる要素が付加されてもよい。また、以下の実施形態の方法に係る順序は入れ替えられてもよいし、その一部のステップが省略されてもよいし、追加のステップが用いられてもよい。
(システム構成)
図1に、本実施形態に係る通信システムの構成例を示す。本通信システムは一例においてクライアント101とサーバ102とを含み、クライアント101及びサーバ102はネットワーク103を介して相互に接続される。なお、クライアント101とサーバ102は、ネットワーク103を介さずに、直接接続されてもよい。例えば、クライアント101とサーバ102は、無線アドホックネットワークを形成して直接通信してもよい。
図1に、本実施形態に係る通信システムの構成例を示す。本通信システムは一例においてクライアント101とサーバ102とを含み、クライアント101及びサーバ102はネットワーク103を介して相互に接続される。なお、クライアント101とサーバ102は、ネットワーク103を介さずに、直接接続されてもよい。例えば、クライアント101とサーバ102は、無線アドホックネットワークを形成して直接通信してもよい。
クライアント101は、例えば、DTV(Digital TV)、HMD(Head Mounted Display)、スマートフォン、タブレット、ディスプレイ一体型のパーソナルコンピュータ(PC)等の、表示機能を含む通信装置である。なお、クライアント101は、必ずしも装置の構成を取らなければならないわけではなく、例えば、上述のような各種装置における、Webブラウザやその他のインストールされたアプリケーションであってもよい。また、クライアント101は、必ずしも表示機能を有しなくてもよく、投影装置を有するプロジェクタや、外部のディスプレイに情報を表示可能なPC等であってもよい。なお、クライアント101は、複数の投影装置を有するマルチプロジェクタであってもよい。なお、クライアント101は、プロキシ装置や、CDN(Contents Deliver Network)に含まれる装置等の、情報表示装置とサーバ102との間の通信経路内で通信に介在する中間装置であってもよい。
サーバ102は、例えば、デジタルカメラ、デジタルビデオカメラ、ネットワークカメラ、プロジェクタ、携帯電話、スマートフォン、PC、及び汎用サーバ装置等であり、ビデオの送信元のサーバ装置として機能可能な通信装置である。なお、図1の例では、サーバ102は、1台の装置のように図解されているが、例えば、クラウド上で分散して配置される複数の装置が、サーバ102の機能を分担して実行してもよい。
ネットワーク103は、クライアント101とサーバ102とが接続される通信網であり、これらの装置が送信した信号は、ネットワーク103によって転送されて他方の装置によって受信される。ネットワーク103は、例えば、インターネット又はイントラネット、有線ネットワーク又は無線ネットワークなどの任意のネットワークである。なお、ネットワーク103は、一部区間において有線ネットワークであり、他区間において無線ネットワークである等、様々な種類のインタフェースが混在するネットワークでありうる。また、無線ネットワークでは、例えば3GPPにおけるLTE等の公衆無線、IEEE802.11規格に準拠した無線LAN、Bluetooth(登録商標)等の、任意の無線通信インタフェースが用いられうる。なお、3GPPは3rd Generation Partnership Projectの、LTEはLong Term Evolutionの頭字語である。また、IEEEはInstitute of Electrical and Electronics Engineersの頭字語である。有線ネットワークでは、例えばEthernet(登録商標)規格に従うインタフェースが用いられうるが、任意の他のインタフェースが用いられてもよい。また、ネットワーク103は、その規模も、LAN(Local Area Network)やWAN(Wide Area Network)等、任意でありうる。
本実施形態に係る通信システムでは、クライアント101は、複数の画素領域に分割されたビデオを取得して、1つのビデオを再生しうる。以下では、分割された結果の画素領域を「タイル」と呼ぶ。すなわち、「タイル」は、最終的に再生されるビデオの一部の領域に対応する。なお、本実施形態において、「ビデオ」は、含まれるフレーム(ピクチャ)のそれぞれが静止画として圧縮されたものであってもよいし、各フレームが動画として圧縮されたものであってもよく、圧縮されていないものであってもよい。
タイルごとに、複数の異なる品質にそれぞれ対応する複数ビデオが存在し、クライアント101は、その複数ビデオのセットから1つのビデオを取得する。そして、クライアント101は、少なくとも第1複数ビデオに関する第1セットと第2複数ビデオに関する第2セットとを含んだ複数セットのそれぞれから、1つずつビデオを取得し、それらを結合して1つのビデオを再生することができる。なお、サーバ102は、クライアント101に対して、複数セットのそれぞれに含まれる複数ビデオのリストを通知する。このとき、リストには、例えば、複数セットのそれぞれに含まれる複数ビデオのそれぞれの所在(取得先のURL(Uniform Resource Locator)等)の情報等が含まれうる。
本実施形態では、複数のタイル間での品質差が大きいことによって視聴者に違和感を与えることを防ぐため、この複数セット間での品質差に関する設定の情報を通知する。ここで、品質差に関する設定の情報は、例えば、複数セット間での品質差が一定以内に収まることが推奨されることを示す情報や、複数セット間での品質差がどのようなものであってもよいことを示す情報でありうる。また、品質差に関する設定の情報は、複数セット間での品質差の最大値が必ず所定以内に収まらなければならないことを示す情報であってもよい。これにより、例えば、複数セット間での品質差を小さくすべきことを示す設定がクライアント101に通知されることで、クライアント101は、タイル間で品質が大きく異なるビデオを取得することがなくなる。1つのタイルは高品質である一方で他のタイルについては著しく低品質である等によって、視聴者に違和感を与えることを防ぐことができる。一方、例えば全画素領域において同様の光景が映し出されているビデオ等、品質差が大きくても視聴者が違和感を覚えにくいビデオについては、品質差を問わないことを示す設定がクライアント101に通知されうる。
ここで、1つのビデオ中、例えば、例えば背景の画素領域と前景の視聴者が着目する画素領域との関係等、品質差に関する視聴者の感度が異なる等、領域ごとに異なる取り扱いをした方がよい場合がありうる。そこで、本実施形態では、上述の複数セットを、品質差に関する設定が共有されるセットの集合(セットグループ)に分類し、その集合ごとの設定を示す情報がクライアント101に通知されるようにする。以下では、本実施形態に係る処理の概要を説明した後に、クライアント101及びサーバ102の構成と、実行される処理の流れについて説明する。
(処理の概要)
まず、図2A~図2Eを用いて、ビデオのタイル化と、タイルの分類の例について説明する。図2Aは、幅7680ピクセル、高さ4320ピクセルのビデオのうちの、ある時刻のピクチャを示している。図2Bは、図2Aのピクチャを、幅方向及び高さ方向でそれぞれ2等分し、4つのタイルに分割した状態を示している。図2Bの状態では、各タイルは、幅方向に7680/2=3840ピクセル、高さ方向に4320/2=2160ピクセルのサイズを有する。図2Cは、図2Aのピクチャを、幅方向及び高さ方向でそれぞれ3等分し、9つのタイルに分割した状態を示している。図2Cの状態では、各タイルは、幅方向に7680/3=2560ピクセル、高さ方向に4320/3=1440ピクセルのサイズを有する。
まず、図2A~図2Eを用いて、ビデオのタイル化と、タイルの分類の例について説明する。図2Aは、幅7680ピクセル、高さ4320ピクセルのビデオのうちの、ある時刻のピクチャを示している。図2Bは、図2Aのピクチャを、幅方向及び高さ方向でそれぞれ2等分し、4つのタイルに分割した状態を示している。図2Bの状態では、各タイルは、幅方向に7680/2=3840ピクセル、高さ方向に4320/2=2160ピクセルのサイズを有する。図2Cは、図2Aのピクチャを、幅方向及び高さ方向でそれぞれ3等分し、9つのタイルに分割した状態を示している。図2Cの状態では、各タイルは、幅方向に7680/3=2560ピクセル、高さ方向に4320/3=1440ピクセルのサイズを有する。
なお、本実施形態では、上述のように、図2Aのピクチャを均等なサイズを有するタイルへと分割しているが、これは一例に過ぎず、タイルの分割方法は必ずしもこれに限られない。例えば、タイルを3×3に分割する場合に中央のタイルのサイズを大きくして周辺のタイルのサイズを小さくするようにピクチャを分割する等によって、得られるタイルのサイズが不均一であっても、以下の議論を適用可能である。
図2Dでは、図2Bのように分割されたタイルを、タイル1とタイル2とによって構成される集合201と、タイル3とタイル4とによって構成される集合202に分類した状態を示している。また、図2Eでは、図2Cのように分類されたタイルを、3つの集合に分類した状態を示している。図2Eでは、9個のタイルが、タイル1、タイル2、タイル4、タイル5によって構成される第1集合203(第1セットグループ203)と、タイル3とタイル6とによって構成される第2集合204(第2セットグループ204)と、タイル7、タイル8、タイル9によって構成される第3集合205(第3セットグループ205)に分類される。
なお、図2D及び図2Eの例では、隣接したタイルが同じ集合となるような分類が行われているが、これに限られない。例えば、図2Eにおいて、タイル1とタイル5とタイル9のように、隣接しないタイルを1つの集合に分類してもよい。また、すべてのタイルを1つの集合に分類してもよい(すなわち、分類が行われなくてもよい)。
なお、本実施形態では、ビデオの符号化方式は特に限定されない。例えば、符号化方式は、HEVC(High Efficiency Video Coding)、AVC(Advanced Video Coding)、VP8又はVP9でありうるが、その他の符号化方式が用いられてもよい。また、タイルに分割されたビデオの符号化は、個々のタイルについて個別に行われてもよいし、複数のタイルにまたがって行われてもよい。また、LHEVC(Layered HEVC)、SVC(Scalable Video Coding)、MVC(Multiview Video Coding)、又はその他異種のスケーラブル符号化方式や階層符号化方式が用いられてもよい。なお、階層符号化が適用される場合、レイヤ数は2つ以上であってもよい。また、階層化とタイル化とが組み合わせられて適用されてもよい。例えば、低画質のベースレイヤはタイル化せず、高画質であるエンハンスメントレイヤはタイル化を行ったビデオが用いられてもよい。
符号化処理が行われたビデオは、ビデオコンテナに格納される。ビデオコンテナのフォーマットは、例えば、ISO BMFF、HEVC File Format、MPEG2-TS、Common Media Application Format、又はWebMでありうるが、他のフォーマットが用いられてもよい。なお、ISOはInternational Organization for Standardizationの、BMFFはBase Media File Formatの、頭字語である。ビデオは、コンテナフォーマットに格納される際に、複数のファイルに時間方向に分割されるセグメント化が行われる。なお、本実施形態では、サーバ102(又は他の装置)に格納されるビデオは、複数のファイルにセグメント化されうるが、これに限られず、セグメント化されずに単一のファイルとして格納されてもよい。なお、ビデオが単一のファイルとしてサーバ102(又は他の装置)に格納される場合、クライアント101は、そのファイルの特定の範囲(バイトレンジ)を指定してセグメントの取得を行いうる。
以下では、マニフェストファイルとして、MPEG-DASHで規定されているMPD(Media Presentation Description)が利用されるものとして説明を行う。なお、MPEG-DASHに代えて、Http LivestreamingやSmooth Streamingなどの、プレイリスト記述を使用する他のプロトコルが用いられてもよい。
次に、図3を用いて、図2Eのように、タイル分割後に分類されたビデオを、クライアント101が取得し再生する場合の例について説明する。なお、クライアント101が取得するビデオは、タイルごとに品質ランクが異なりうる。ここでいう品質ランクは、ビットレート、解像度、サンプリングレートなどの値が高いほど高い値を取る評価値でありうる。なお、品質ランクは、ビットレート、解像度、サンプリングレートと異なる任意の基準に基づいて、その優劣による順位付けが可能な限りにおいて、どのように定められてもよい。
図3の例では、高品質(HQ:High Quality)のタイル301と、中品質(MQ:Middle Quality)のタイル302と、低品質(LQ:Low Quality)のタイル303との、3つの異なる品質ランクのビデオが用意される。なお、以下では、高品質のビデオをタイル1a~9a、中品質のビデオをタイル1b~9b、低品質のビデオをタイル1c~9cと呼ぶ。ここで、以下の説明では、高品質と中品質との間の品質ランクの差が「1」であり、中品質と低品質との間の品質ランクの差が「1」であり、高品質と低品質との間の品質ランクの差が「2」であるものとする。すなわち、品質が3段階でランク付けされているものとする。なお、各タイルにおけるビデオは、各品質ランクについて、ビットストリームとして生成される。
サーバ102は、例えば、複数タイルのそれぞれについての複数の品質ランクにそれぞれ対応する複数ビデオのリストと、タイルの分類後の集合を示す情報と、そして、各集合における品質ランクの差に関する設定の情報をクライアント101へ通知する。タイルの集合を示す情報は、例えば、各タイルが上述の第1集合203~第3集合205(第1セットグループ203~第3セットグループ205)のいずれに属するかを示す情報である。また、各集合における品質ランクの差に関する設定は、例えば、集合ごとに視聴者に違和感を与えないような(例えば実験等によって違和感が少ないと推定される)品質ランクの差の推奨値が指定されうる。ただしこれに限られず、例えば、各集合において指定された設定が満たされない限りビデオの再生が許されない品質ランクの差の値が指定される等、任意の基準で品質ランクの差に関する設定が行われうる。この具体的な通知方法については、後述する。
クライアント101は、通知された情報に従って、ビデオの再生を行う。クライアント101は、自装置における通信環境等に基づいて、各タイルのうち、いずれを取得すべきかを判定しうる。例えば、クライアント101は、高速通信が可能な状況においては、高品質のビデオを取得しうる。ただし、クライアント101は、品質ランクの差に関する設定に応じて、あるタイルのビデオを取得する際に、その取得対象のビデオの品質ランクと、そのタイルが属する集合に含まれる他のタイルのビデオの品質ランクとの差が設定された条件を満たすようにする。なお、クライアント101は、例えば設定が推奨設定等の任意設定である場合には、集合内のタイルの品質ランク差が設定された条件を満たさないようなビデオを取得してもよい。一方、クライアント101は、例えば設定が必須設定である場合には、集合内のタイルの品質ランク差が設定された条件を満たさないようなビデオについては取得しない。例えば、第1集合203に対して、タイルの品質ランクの差の最大値を1とするような設定がなされている場合、クライアント101は、その集合内のタイルに関して受信されるビデオの品質ランクの差が1以内となるようにする。すなわち、図3の集合304を例にとると、クライアント101は、タイル1についてタイル1aが取得されているため、例えば、タイル2については、タイル2a又はタイル2bを取得する。タイル4及びタイル5についても同様である。このため、図3の集合304の例では、タイル1aに加えて、タイル2a、タイル4b、及びタイル5bが取得されている。このように、集合304の中での品質ランクは、最も良好な品質がHQであり、最も良好でない品質がMQであるため、品質ランクの最大差は「1」となる。なお、この場合、クライアント101は、例えばタイル5に関してタイル5cしか取得できない場合には、タイル1aを取得可能な通信状況であっても、タイル1b又はタイル1cを取得するようにしうる。
一方、クライアント101は、タイル3及び6がタイル1とは異なる第2集合204に属するため、第1集合203に属する各タイルの品質クラスとは関係なく、タイル3及び6について取得されるべきビデオを決定しうる。ここで、第2集合204についてタイルの品質ランクの差の最大値を2とするような設定がなされているものとする。クライアント101は、図3の集合305のように、タイル3についてタイル3aを取得する場合、タイル6についてはタイル6a、タイル6b、タイル6cのいずれかを取得する。すなわち、この場合、第2集合204においては、タイルの品質ランクの差についての制約がないと解することができる。図3の例の集合305の例では、タイル3についてタイル3a、タイル6についてタイル6cが取得されている例が示されている。このように、集合305の中での品質ランクの最大差、すなわち、タイル3とタイル6との間の品質ランクの差は、「2」となっている。
同様に、集合205について、タイルの品質ランクの差の最大値を2とするような設定がなされているものとする。この場合に、クライアント101は、タイル7、タイル8、タイル9のうちの最も良好な品質と最も良好でない品質との差が「2」以内となるようにする。図3の集合306の例では、タイル7、タイル8、タイル9のそれぞれについて、タイル7c、タイル8c、タイル9cが取得されたものとする。この場合、最も良好な品質と最も良好でない品質とが共にLQであるため、品質ランクの最大差は「0」となる。
このように、クライアント101は、あるタイルに関して品質ランクがそれぞれ異なる複数ビデオを含んだビデオのセットの中から、他のタイルに関して受信するビデオの品質ランクとの関係を考慮して、受信するビデオを選択することができる。このとき、複数のタイルを分類し、その分類ごとに、品質ランクの差に関する設定が行われることで、ビデオの画素領域ごとに不必要な制約を課すことなく、視聴者に与える違和感を低減することができる。なお、上述の説明では、複数のタイルを分類する際に、各タイルが1つの集合のみに属するようにしたが、これに限られない。すなわち、集合の境界のタイル等の一部のタイルは、2つ以上の集合に属するように分類が行われてもよい。
なお、図3では、品質ランクの段階が3段階であるがこれに限られず、例えば2段階や4段階以上にランク付けされるビデオが用意されてもよい。また、図3では、各タイルについて、3つの異なる品質のビデオを用意している状態を示しているが、これに限られない。例えば、タイル1に対しては5個の品質の異なるビデオが用意され、タイル2に対しては2個の品質の異なるビデオが用意されるなど、タイルごとに異なる数の品質の異なるビデオが用意されてもよい。なお、本実施形態では、タイル化されたビデオを例として説明するが、これに限られない。すなわち、複数の異なる品質のビデオを組み合わせた1つのビデオの再生や、複数の異なる品質のオーディオを組み合わせた1つのオーディオの再生などに、以下の議論が適用されうる。例えば、複数の異なるビデオを単一画面で再生する方式、全体と切り出された一部との2つのビデオを組み合わせて再生する方式、または、複数の音声を合成して音声データを生成する方式に対して、以下の議論を適用することができる。また、タイル化されたビデオに代えて、複数のカメラから取得された複数のビデオをタイルのように並べて1つのビデオを再生するシステムにも、以下の議論を適用することができる。
(装置構成)
続いて、サーバ102の構成例について説明する。まず、図4を用いて、サーバ102のハードウェア構成例について説明する。サーバ102は、例えば、制御部401、記憶部402、表示部403、操作部404、撮像部405、符号化部406、通信部407、有線LANインタフェース408、及びシステムバス409を有する。
続いて、サーバ102の構成例について説明する。まず、図4を用いて、サーバ102のハードウェア構成例について説明する。サーバ102は、例えば、制御部401、記憶部402、表示部403、操作部404、撮像部405、符号化部406、通信部407、有線LANインタフェース408、及びシステムバス409を有する。
制御部401は、サーバ102における動作を、例えばシステムバス409を通じて他の構成部を制御することによって、統括的に制御する。制御部401は、例えば、CPU(中央処理装置)、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、DSP(デジタルシグナルプロセッサ)等の1つ以上のプロセッサでありうる。記憶部402は、各種データを記憶し管理する。記憶部402は、例えば、SRAM(Static RAM)、DRAM(Dynamic RAM)等のメモリや、ハードディスクドライブ等の大容量記憶装置でありうる。表示部403は、制御部401の制御下で各種表示を行うように構成された、例えば液晶パネルである。操作部404は、ユーザからの操作を受け付ける、例えばキーやボタンである。なお、表示部403及び操作部404は、例えばタッチパネルによって、1つの装置として構成されてもよい。撮像部405は、ビデオの撮像を行う。撮像部405は、例えばレンズやセンサを含んで構成される。符号化部406は、ビデオの符号化処理を行う。なお、符号化部406は、専用の回路等によって構成されてもよいが、例えば、制御部401が記憶部402に記憶されたプログラムを実行することによって、撮像部405で撮像したビデオを符号化するようにしてもよい。通信部407は、有線LANインタフェース408を介して、各種通信処理を実行する。通信部407は、例えば、変復調回路等の通信用回路を含んで構成される。有線LANインタフェース408は、例えば光電変換装置を有し、通信部407の制御の下で、光ファイバを経由して受信した光信号を電気信号に変換し、又は、電気信号を光信号へと変換して光ファイバ経由で送信しうる。なお、本実施形態では、通信部407は有線通信を行うものとするが、これに限られず、無線LAN、Bluetooth(登録商標)、公衆移動体通信等の無線通信を行うようにしてもよい。この場合、有線LANインタフェース408は、例えばアンテナ等と置き換えられうる。また、サーバ102は、複数の通信インタフェースを有してもよい。なお、本実施形態では、サーバ102がビデオの撮像を行うものとするが、サーバ102は、ビデオを他の通信装置から取得してもよい。
また、本実施形態では1台のサーバ装置が取得しビデオを使用するものとするが、これに限られず、サーバ102は、複数の機器から取得したデータに基づいてビデオを生成してもよい。また、サーバ102は、複数の機器から取得したデータに基づいて生成されたビデオを、他の機器から取得してもよい。なお、本実施形態では、サーバ102が符号化部406を含んでいるが、サーバ102は他の装置において符号化されたデータを取得してもよい。また、サーバ102は、ビデオを取得せず、ビデオの所在のみを把握して、その所在に関する情報をクライアント101へ通知してもよい。
図5は、サーバ102の機能構成例を示す図である。サーバ102は、例えば、通信制御部501、表示制御部502、操作制御部503、記憶制御部504、TCP/IP通信制御部505、セグメント生成部506、プレイリスト生成部507、HTTP通信制御部511を含んで構成される。また、サーバ102は、さらに、集合設定部508、集合管理部509、品質差情報決定部510、及び集合解析部512を含む。なお、図5に示される各機能部は、例えば制御部401が、記憶部402に記憶されているプログラムを実行することによって実現されうる。なお、各機能部の一部若しくは全部、又は1つの機能部の一部がハードウェア化されていてもよい。
通信制御部501は、通信部407を制御して通信を実行させる。表示制御部502は、表示部403を制御して、所定の情報を表示させる。表示制御部502は、例えば、表示部403に、ユーザからの操作を受け付けるためのUIを表示させてもよい。操作制御部503は、操作部404を制御して、ユーザからの操作を受け付ける。記憶制御部504は、記憶部402を制御して、各種情報を記憶させ、変更させ、又は削除させる。TCP/IP通信制御部505は、通信部407を利用して、クライアント101との間で、TCP/IP方式の通信制御を行う。なお、本実施形態ではTCP/IP通信が利用される例について説明するが、これに限られず、UDP(User Datagram Protocol)が用いられてもよい。
セグメント生成部506は、ビデオから、クライアント101に送信するセグメントを生成する。なお、ここでのセグメント生成部506は、タイル化されたセグメントを生成する。セグメント生成部506は、1つ以上のタイルに対して、複数の異なる品質ランクのセグメントを生成する。なお、サーバ102が送信するセグメントは、他の装置によって生成されたセグメントであってもよい。
プレイリスト生成部507は、クライアントが、ビデオの取得に使用するプレイリストを生成する。プレイリストには、特定のタイミングで特定のセグメントにアクセスするためのURL(Uniform Resource Locator)が記述される。ここで、一例として、プレイリストが、MPEG-DASHにおけるMPD(Media Presentation Description)ファイルであるものとする。この場合、1つのタイルに対する複数の品質ランクにそれぞれ対応する複数ビデオのURLが、AdaptationSet要素(Element)内に格納される。すなわち、AdaptationSetは、1つのタイルに関する複数ビデオのセットに対応する要素である。また、プレイリスト生成部507は、プレイリストに、AdaptationSetが所属する集合の情報、その集合の識別子、AdaptationSetの集合ごとの品質ランク差に関する設定の情報を記述する。例えば、図2Dの状態では、タイル1~4は集合201又は202に属する。このため、各タイルに関するAdaptationSetが集合201と202とのいずれに属するかを示す情報、集合201及び202の識別子、集合201及び202での品質ランク差に関する設定の情報が、MPDファイルに格納される。品質ランク差に関する情報は、例えば、対応する集合において、推奨される品質ランクの差の最大値や、必ず守られるべき品質ランクの差の最大値、又は品質ランクの差について制約がないこと等を示す情報でありうる。なお、本実施形態では、上述の各情報がMPDファイルに記述される例について説明したが、これに限定されず、HTMLファイルや、javascriptファイルに記述されてもよい。また、AdaptationSetが属する集合の情報、集合の識別子、AdaptationSetの集合ごとの品質ランク差に関する設定の情報は、MPDファイル以外に記述されてもよい。たとえば、HTMLファイルやjavascriptファイルに記述してもよい。なお、サーバ102が送信するプレイリストや集合等に関する情報は、他の装置で生成されたものであってもよい。
集合設定部508は、タイルを分類してタイルの集合を設定する。集合管理部509は、集合設定部508が設定した集合の情報と、品質差情報決定部510が決定した品質差に関する設定の情報とを関連付けて管理する。品質差情報決定部510は、1つ以上のAdaptationSetが属する集合ごとに、品質ランク差に関する設定を決定する。例えば、品質差情報決定部510は、視聴者に違和感を与えないような品質ランクの差の大きさを選択して、品質ランク差に関する設定値としうる。HTTP通信制御部511は、HTTP(Hyper Text Transfer Protocol)において規定されるサーバとしての通信処理を行う。集合解析部512は、共通の品質ランク差に関する設定を適用するタイルの集合を設定するために、ビデオの解析を行う。
続いて、クライアント101の構成例について説明する。図6は、クライアント101のハードウェア構成例を示す図である。クライアント101は、例えば、制御部601、記憶部602、表示部603、操作部604、復号部605、通信部606、無線LANインタフェース607、及びシステムバス608を有する。
制御部601は、クライアント101における動作を、例えばシステムバス608を通じて他の構成部を制御することによって、統括的に制御する。制御部601は、例えば、CPU(中央処理装置)、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、DSP(デジタルシグナルプロセッサ)等の1つ以上のプロセッサでありうる。記憶部602は、各種データを記憶し管理する。記憶部602は、例えば、SRAM(Static RAM)、DRAM(Dynamic RAM)等のメモリや、ハードディスクドライブ等の大容量記憶装置でありうる。表示部603は、制御部601の制御下で各種表示を行うように構成された、例えば液晶パネルである。操作部604は、ユーザからの操作を受け付ける、例えばキーやボタンである。なお、表示部603及び操作部604は、例えばタッチパネルによって、1つの装置として構成されてもよい。復号部605は、ビデオの復号処理を行う。なお、復号部605は、専用の回路等によって構成されてもよいが、例えば、制御部601が記憶部602に記憶されたプログラムを実行することによって、取得されたビデオの復号を行う。通信部606は、無線LANインタフェース607を介して、各種通信処理を実行する。通信部606は、例えば、変復調回路等の通信用回路を含んで構成される。無線LANインタフェース607は、例えば、RFフロントエンドやアンテナを含んで構成され、通信部606が生成した信号を無線信号に変換してアンテナを介して送出する。なお、本実施形態では、通信部606は、無線LANでの通信を行うものとするが、これに限られず、例えば有線LANインタフェースを介して有線通信を行ってもよいし、Bluetooth(登録商標)や、公衆移動体通信等の他の無線通信を行ってもよい。また、クライアント101は、複数の通信インタフェースを有してもよい。なお、本実施形態では、表示部603がクライアント101の1つの構成要素として示されているが、例えば、HDMI(登録商標)などで接続された、ディスプレイやテレビ等の外部の表示装置が用いられてもよい。その場合、クライアント101は、例えば表示制御部を有しうる。
図7は、クライアント101の機能構成例を示す図である。クライアント101は、例えば、通信制御部701、表示制御部702、操作制御部703、記憶制御部704、TCP/IP通信制御部705、HTTP通信制御部707、及びプレイリスト取得部713を含んで構成される。また、クライアント101は、さらに、セグメント解析部706、プレイリスト解析部708、集合管理部709、セグメント取得部710、品質決定部711、及び再生制御部712を含む。なお、図7に示される各機能部は、例えば制御部601が、記憶部602に記憶されているプログラムを実行することによって実現されうる。なお、各機能部の一部若しくは全部、又は1つの機能部の一部がハードウェア化されていてもよい。
通信制御部701は、通信部606を制御して通信を実行させる。表示制御部702は、表示部603を制御して、所定の情報を表示させる。表示制御部702は、例えば、表示部603に、通信部606を介して受信したデータに基づくビデオや、ユーザからの操作を受け付けるためのUIを表示させてもよい。操作制御部703は、操作部604を制御して、ユーザからの操作を受け付ける。記憶制御部704は、記憶部602を制御して、処理データやビデオ等の各種情報を記憶させ、変更させ、又は削除させる。TCP/IP通信制御部705は、通信部606を利用して、サーバ102との間で、TCP/IP方式の通信制御を行う。なお、本実施形態ではTCP/IP通信が利用される例について説明するが、これに限られず、UDPが用いられてもよい。セグメント解析部706は、復号部605を制御して、サーバ102から取得したビデオであるセグメントをデコードさせる。HTTP通信制御部707は、HTTPにおいて規定されるクライアントとしての通信処理を行う。
プレイリスト取得部713は、サーバ102からプレイリストを取得する。プレイリスト解析部708は、プレイリスト取得部713がサーバ102から取得したプレイリストを解析する。なお、ここでのプレイリストは、MPDファイルであるものとする。MPDファイルには、特定のタイミングで特定のセグメントにアクセスするためのURLが記述されている。また、MPDファイルには、各タイルに対応するAdaptationSetが属する集合の情報、その集合の識別子、集合ごとの品質ランク差に関する設定の情報等が記述される。プレイリスト解析部708は、これらの、セグメント、AdaptationSetの集合、集合の識別子、集合ごとの品質ランク差に関する設定の情報等の各種情報を、解析によって取得する。なお、本実施形態では、上述の各情報がMPDファイルに記述される例について説明したが、これに限定されず、HTMLファイルや、javascriptファイルに記述されてもよい。この場合、プレイリスト解析部708は、上述の各種情報を、HTMLファイルやjavascriptファイルなどのファイルを解析して取得しうる。
集合管理部709は、プレイリスト解析部708が解析によって取得した複数のAdaptationSetの集合の情報と、その集合ごとの品質ランク差に関する情報を管理する。セグメント取得部710は、MPDファイル等のプレイリストに従って各セグメントの取得先のURLへアクセスし、そのセグメントを取得する。なお、各セグメントの取得先は、例えばサーバ102でありうるが、これに限られず、他のサーバやネットワークに接続されたカメラ等であってもよい。品質決定部711は、AdaptationSetの集合ごとに、集合管理部709で管理されている品質ランク差の情報に基づいて、取得すべきRepresentationを決定する。なお、Representationは、1つのAdaptationSetの中に含まれる、同じタイルに関する品質ランクの異なるビデオ(セグメント)を指す。セグメント取得部710は、各AdaptationSetの中に含まれる1つ以上のRepresentationの取得先のURLの中から、品質決定部711が決定したRepresentationの取得先のURLにアクセスしてセグメントを取得する。再生制御部712は、セグメント解析部706によってデコードされたビデオの再生処理を行う。なお、セグメント解析部706又は再生制御部712は、複数のそれぞれ別個の画素領域に対応するビデオを合成する処理を実行しうる。このとき、例えば、複数のビデオが異なるカメラで撮影されたものである場合に、ビデオ間で互いに重複する領域がある場合、その領域の特定と合成とが行われうる。
(MPDファイルの構成)
次に、サーバ102が生成するMPDファイル(プレイリスト)のいくつかの例について、図8~図11を用いて説明する。なお、図8~図11には、本実施形態の説明のために特に有用な項目を含んだMPDファイルを示しており、他の項目がさらに含まれてもよい。すなわち、MPDファイルには、例えばMPEG-DASH標準又は将来の拡張で定義されるその他のパラメータが含まれうるが、本実施形態では簡単のため、これらの他のパラメータについては省略している。
次に、サーバ102が生成するMPDファイル(プレイリスト)のいくつかの例について、図8~図11を用いて説明する。なお、図8~図11には、本実施形態の説明のために特に有用な項目を含んだMPDファイルを示しており、他の項目がさらに含まれてもよい。すなわち、MPDファイルには、例えばMPEG-DASH標準又は将来の拡張で定義されるその他のパラメータが含まれうるが、本実施形態では簡単のため、これらの他のパラメータについては省略している。
(構成例1)
まず、MPDファイルの構成の第1の例について図8を用いて説明する。図8は、図2Dに示されるようなタイルの集合化が行われた場合のMPDファイルの例を示している。なお、図2Eに示されるようなタイルの集合化が行われた場合であっても、同様のMPDファイルを構成することができる。図8において、AdaptationSet要素801~804には、それぞれ、タイル1~4の情報が記述される。AdaptationSet要素801は、タイル1の識別子である「id=1」という属性(Attribute)を含む。同様に、AdaptationSet要素802は「id=2」という属性を、AdaptationSet要素803は「id=3」という属性を、AdaptationSet要素804は「id=4」という属性を、それぞれ含む。なお、ここでは、タイルの識別子は、数字(AdaptationSet要素801では「1」)で表されているが、これに限られず、英数字や記号等のMPEG-DASH標準で規定されている識別子として使用可能な文字からなる文字列で表現されうる。
まず、MPDファイルの構成の第1の例について図8を用いて説明する。図8は、図2Dに示されるようなタイルの集合化が行われた場合のMPDファイルの例を示している。なお、図2Eに示されるようなタイルの集合化が行われた場合であっても、同様のMPDファイルを構成することができる。図8において、AdaptationSet要素801~804には、それぞれ、タイル1~4の情報が記述される。AdaptationSet要素801は、タイル1の識別子である「id=1」という属性(Attribute)を含む。同様に、AdaptationSet要素802は「id=2」という属性を、AdaptationSet要素803は「id=3」という属性を、AdaptationSet要素804は「id=4」という属性を、それぞれ含む。なお、ここでは、タイルの識別子は、数字(AdaptationSet要素801では「1」)で表されているが、これに限られず、英数字や記号等のMPEG-DASH標準で規定されている識別子として使用可能な文字からなる文字列で表現されうる。
AdaptationSet要素801内に含まれるRepresentation要素805~807には、それぞれタイル1に関する異なる品質のビデオに関する情報が格納される。Representation要素805~807には、それぞれ、その要素の識別子である「id」が属性として含められる。また、Representation要素805~807には、対応するビデオの帯域幅を示す「bandwidth」と、1つのAdaptationSet要素内での相対的な品質ランクを示す「qualityRank」が属性として含められる。例えば、Representation要素805は、その属性として、「id=1.1」、「bandwidth=5000000」、「qualityRank=0」が含められる。ここで、qualityRanking属性は、その値が小さいRepresentation要素ほど、そのRepresentation要素に対応するビデオの品質が高いことを示す属性である。図8の例では、Representation要素805に対応するビデオの品質が一番高く、次いで、Representation要素806に対応するビデオの品質が高く、Representation要素807に対するビデオの品質が一番低い。なお、qualityRankは、上述のように1つのAdaptationSet要素内での品質ランクを示しており、他のAdaptationSet要素に含まれるRepresentation要素に対応するビデオとの品質の関係を示すものではない。
図8において、AdaptationSet要素802は、2つのRepresentation要素を含んでいる。このように、AdaptationSetごとに含まれるRepresentationの数は異なっていてもよい。また、AdaptationSet要素801及び802において示されるように、AdaptationSetに含まれるRepresentation要素で指定するビデオの帯域幅や品質は、タイルごとに異なっていてもよい。
本実施形態では、品質ランクの差に関する設定を共有するAdaptationSetの集合を規定するために、SupplementalProperty要素808を定義する。SupplementalProperty要素808は、「schemeIdUri」属性を含む。schemeIdUri属性は、値「urn:mpeg:dash:quality_equivalence」を定義する。例えばクライアント101等の装置は、この値によって、SupplementalProperty要素808が、品質ランク(qualityRanking)の差に関する設定を共有する集合を規定する要素であることを識別できる。また、SupplementalProperty要素808は、「value」属性を含み、value属性によって、集合化されたAdaptationSetが定義される。value属性に設定されている値「1,2,x:3,4,y」は、識別子が「1」及び「2」のAdaptationSetによって第1集合(第1セットグループ)が構成され、識別子が「3」及び「4」のAdaptationSetによって第2集合(第2セットグループ)が構成されることを示す。また、「x」は第1集合の識別子であり、「y」は第2集合の識別子である。本実施形態では、2つの集合を区切るために、記号「:」が用いられている。このように、SupplementalProperty要素808には、記号「:」で区切られない1つの区間において、集合の識別子と、その集合に属するAdaptationSetの識別子とを関連付ける情報が記述される。
なお、これらの記述は一例であり、上述のような第1集合と第2集合の識別子と、それらの集合に属するAdaptationSetが特定される任意の記述が用いられうる。例えば、集合の区切りを示す「:」は、AdaptationSetの識別子や集合の識別子と区別可能であり、MPDファイルを受信した装置が集合の区切りを認識することができる所定の記号に置き換えられてもよい。また、「(集合に含まれるAdaptationSetの識別子),(その集合の識別子)」という記述の順序は、「(集合の識別子),(その集合に含まれるAdaptationSetの識別子)」という順序等、他の順序と置き換えられてもよい。さらに、集合が1つしか存在しない場合は、集合の識別子は省略されてもよい。また、集合の識別子は、「x」や「y」等の文字に限定されず、任意の英数字及び記号等からなる任意の長さの文字列によって表現されてもよい。
本実施形態のMPDファイルでは、さらに、集合ごとに品質ランクの差に関する設定を行うために、SupplementalProperty要素809が定義される。品質ランクの差とは、例えば、1つの集合に属する複数のAdaptationSetのそれぞれについて取得されるビデオに対応する、Representation要素内のqualityRankingの値の差のことを指す。例えば、そして、品質ランクの差に関する設定は、例えば、その設定の対象の集合に属する複数のAdaptationSetのそれぞれについて取得されるビデオに対応するqualityRankingの値の差を所定値以内とすることでありうる。なお、このような設定は、その設定に関する条件が満たされることが推奨される任意要件を指定してもよいし、その設定に関する条件が満たされなければならない必須要件を指定してもよい。例えば、ある集合内で取得される複数のビデオのそれぞれに対応するqualityRankingの値の差を所定値以内とすることが推奨されることが前提とされる場合、その所定値の情報が設定の情報として指定されうる。また、設定された条件が任意であるか必須であるかを示す情報等が含められてもよい。
図8において、SupplementalProperty要素809は、属性「schemeIdUri」を有し、schemeIdUri属性は、値「urn:mpeg:dash:max_quality_degradation」を定義する。この識別子によって、このMPDファイルを受信したクライアント101等の機器は、SupplementalProperty要素809が集合ごとの品質ランクの差に関する設定を規定していることを認識することができる。なお、集合ごとに品質ランクの差に関する設定以外の設定がなされてもよく、その場合、例えば、上述の値のうち、「max_quality_degradation」の部分が他の文字列で置き換えられうる。
SupplementalProperty要素809は、さらに属性「value」を有し、value属性には、集合ごとのビデオの品質ランクの差に関する設定が記述される。value属性は、例えば「1,x:2,y」のように記述される。なお、本実施形態では、2つの集合に関する設定情報を区切るために、記号「:」が用いられている。「x」及び「y」は、AdaptationSetの集合に関する識別子であり、SupplementalProperty要素808と共通の識別子が用いられる。すなわち、第1のSupplementalProperty要素808と、第2のSupplementalProperty要素809とで、AdaptationSetの集合が、共通の識別子で表現されている。一方、value属性における「1」及び「2」は、それぞれ、識別子xの集合と識別子yの集合とについての品質ランクの差の値の設定値を示している。ここでは、推奨される品質ランクの差の最大値が指定される。例えば、「1,x」の部分により、識別子xの集合に含まれるidが「1」及び「2」のAdaptationSetに記述された2つのビデオを同時に再生する場合に、その2つのビデオの品質ランク差が「1」以内であることを推奨する設定が示される。同様に、「2,y」の部分により、識別子yの集合に含まれるidが「3」及び「4」のAdaptationSetに記述された2つのビデオを同時に再生する場合に、その2つのビデオの品質ランク差が「2」以内であることを推奨する設定が示される。このように、SupplementalProperty要素809には、記号「:」で区切られない1つの区間において、集合の識別子と、その集合に適用される設定値とを関連付ける情報が記述される。
例えば、クライアント101がAdaptationSet要素801とAdaptationSet要素802とに基づいて取得されたビデオを同時に再生するものとする。この場合、Representation idが「1.1」のビデオ(セグメント)と、Representation idが「2.1」のビデオとでは、qualityRankingの差が「0」である。したがって、クライアント101は、これらのビデオを同時に再生する際に推奨されている設定が満たされていると判定することができる。一方で、クライアント101は、Representation idが「1.3」のビデオと、Representation idが「2.1」のビデオとでは、qualityRankingの差が「2」である。このため、クライアント101は、これらのビデオを同時に再生する際に推奨されている設定が満たされていない、すなわち、これらのビデオを同時に再生することが推奨されていないと判定することができる。
なお、上述の例に係るSupplementalProperty要素809の記述は一例であり、同様の趣旨で異なる表現が用いられてもよい。例えば、2つの集合に関する設定間の区切りを示す「:」は、設定に用いられる値や集合の識別子(x、y)と区別可能であり、MPDファイルを受信した装置が集合の区切りを認識することができる所定の記号に置き換えられてもよい。また、「(設定値),(その集合の識別子)」という記述の順序は、「(集合の識別子),(設定値)」という順序等、他の順序と置き換えられてもよい。さらに、集合が1つしか存在しない場合は、集合の識別子は省略されてもよい。
なお、本実施形態では、あるAdaptationSetの集合について品質ランクの差に関する設定が共有されている、とは、そのAdaptationSet内のRepresentationの品質ランクの差に関する基準が共有されていることを指す。すなわち、設定が共有されている集合において、他のAdaptationSetとの品質ランクの差に関する設定値は、第1のAdaptationSetに関して「1」の場合は、その集合内の第2のAdaptationSetについても「1」となる。図8の例では、SupplementalProperty要素808で示されるように、idが「1」及び「2」のAdaptationSet要素801及び802が、品質ランクの差に関する設定が共有されている。したがって、他のAdaptationSetとの品質ランクの差に関する設定値は、SupplementalProperty要素809に示されるように、AdaptationSet要素801及び802について、共に「1」となる。なお、AdaptationSetのある集合について品質ランクの差に関する設定が共有されている場合、その集合内のAdaptationSetの全てにおいて同じqualityRankingのビデオが取得されるように、設定が定められていてもよい。
このように、サーバ102が、SupplementalProperty要素808をMPDファイルに記述することにより、クライアント101は、複数のAdaptationSetからなる集合を識別することができる。また、サーバ102が、SupplementalProperty要素809をMPDファイルに記述することにより、クライアントは、AdaptationSetの集合ごとの品質ランクの差に関する設定を把握することができる。このとき、SupplementalProperty要素808及び809で、集合の識別子(上述の「x」及び「y」)を共通の識別子によって表現することによって、クライアント101は、これらの要素間の関係を容易に認識することができる。サーバ102は、これらの2つの情報により、1つの集合内の複数のAdaptationSetで規定される複数ビデオのうちのいずれかをそれぞれ選択して同時に再生する場合の品質ランクの差に関する設定を、クライアント101に通知することができる。そして、クライアント101は、この通知情報により、例えば推奨される組み合わせのビデオを取得して再生することができる。したがって、クライアント101は、同時に再生されるRepresentation間の品質差による違和感をユーザに対して与えずに、ビデオの再生を行うことができる。その結果、ユーザエクスペリエンスを向上させることができる。
(構成例2)
次に、MPDファイルの構成の第2の例について図9を用いて説明する。図9は、図2Eに示されるようなタイルの集合化が行われた場合のMPDファイルの例を示している。なお、図9に示すMPDファイルの構成が、図2Dに示されるようなタイルの集合化が行われた場合にも使用可能であることは明らかである。図9では、AdaptationSet要素901~909に、それぞれ、タイル1~9の情報が記述される。なお、AdaptationSet要素901~909には、図8のRepresentation要素805~807と同様の1つ以上のRepresentation要素が含まれる。ただし、図9~図11では、簡単のために、これらの記述については省略している。
次に、MPDファイルの構成の第2の例について図9を用いて説明する。図9は、図2Eに示されるようなタイルの集合化が行われた場合のMPDファイルの例を示している。なお、図9に示すMPDファイルの構成が、図2Dに示されるようなタイルの集合化が行われた場合にも使用可能であることは明らかである。図9では、AdaptationSet要素901~909に、それぞれ、タイル1~9の情報が記述される。なお、AdaptationSet要素901~909には、図8のRepresentation要素805~807と同様の1つ以上のRepresentation要素が含まれる。ただし、図9~図11では、簡単のために、これらの記述については省略している。
図9のMPDファイルは、図8のSupplementalProperty要素808と同様のSupplementalProperty要素910を含む。SupplementalProperty要素910により、例えば、idが「1」、「2」、「4」、及び「5」のAdaptationSetによって識別子「x」の第1集合(第1セットグループ)が定義される。同様に、idが「3」及び「6」のAdaptationSetによって識別子「y」の第2集合(第2セットグループ)が、idが「7」、「8」及び「9」のAdaptationSetによって識別子「z」の第3集合(第3セットグループ)が定義される。
一方、図9のMPDファイルでは、図8のSupplementalProperty要素809と異なる形式で、集合ごとの品質ランクの差に関する設定の情報として、SupplementalProperty要素911が記述される。SupplementalProperty要素911は、schemeIdUri属性とその値の記述まではSupplementalProperty要素809と同様の構成を有する。一方、SupplementalProperty要素911には、SupplementalProperty要素809には含まれていない属性「default_max_quality_degradation」が記述されている。このdefault_max_quality_degradation属性は、1つ以上の集合に対して同じ(デフォルトの)品質ランクの差に関する設定が用いられる場合に規定されうる。図9の例では、default_max_quality_degradation属性の値が「2」に設定されている。value属性の記述は、基本的にはSupplementalProperty要素809におけるvalue属性の記述と同様である。しかしながら、複数の集合のうち、このdefault_max_quality_degradation属性の値を、品質ランクの差に関する設定として用いる集合については、value属性に記述しない。すなわち、value属性に記述されていない集合については、default_max_quality_degradation属性で指定された値が品質ランクの差に関する設定として用いられる。図9の例では、識別子xの集合についてはvalue属性に記述が存在するが、識別子y及びzの集合についてはvalue属性に記述が存在しない。このため、識別子y及びzの集合は、品質ランクの差に関する設定値が「2」であるものとして扱われる。一方、識別子xの集合については、value属性に「1,x」と記述されているため、品質ランクの差に関する設定値が「1」となる。すなわち、SupplementalProperty要素911の「value=“1,x”」との記述は、SupplementalProperty要素809が「value=“1,x:d,y:d,z”」と記述される場合と同様の意味を有する。なお、ここでの「d」は、default_max_quality_degradation属性で指定された値(図9の例では「2」)である。同様に、SupplementalProperty要素911が「value=“1,y”」である場合、その意味は、SupplementalProperty要素809の「value=“d,x:1,y:d,z”」との記述と同様である。なお、複数の集合が同じdefault_max_quality_degradation属性で指定された値を用いる場合であっても、その複数の集合のそれぞれについて、設定に従ったビデオの取得が別個に行われる。例えば、第1集合と第2集合とが共通に用いるdefault_max_quality_degradation属性の値が「1」の場合であって、第1集合において品質ランク「0」のビデオが取得されたとする。このとき、第2集合では、第2集合において取得されるビデオの最高の品質ランクが「1」である場合、第2集合内で品質ランク「2」のビデオについては推奨される範囲内となる。すなわち、同じ設定が用いられる場合であっても、第2集合のビデオの選択は、第1集合において取得されるビデオ品質ランクによらずに行われる。
なお、図9の例においても、SupplementalProperty要素910及び911で、AdaptationSetの集合に関する識別子が、共通の識別子によって表現される。これにより、このMPDファイルを受信した機器が、SupplementalProperty要素910とSupplementalProperty要素911との関係を明確に特定することが可能となる。
このように、サーバ102が、1つ以上の集合で共通に使用される品質ランクの差に関する設定を定義することにより、複数の集合が同じ設定を用いる場合に、MPDファイルの記述量を削減することができる。また、サーバ102が、複数の集合に対して共通に使用される品質ランクの差に関する設定を定義することにより、クライアント101において複数の集合に関して同様の処理を実行すれば足りるため、クライアント101の処理負荷を低減することができる。
(構成例3)
続いて、MPDファイルの構成の第3の例について図10を用いて説明する。図10は、図2Dに示されるようなタイルの集合化が行われた場合のMPDファイルの例を示している。図10のMPDファイルは、図8の2つのSupplementalProperty要素808及び809に代えて、1つのSupplementalProperty要素1001が含まれる。すなわち、1つのSupplementalProperty要素1001によって、AdaptationSetの集合の定義と、集合ごとの品質ランクの差に関する設定とが定義される。
続いて、MPDファイルの構成の第3の例について図10を用いて説明する。図10は、図2Dに示されるようなタイルの集合化が行われた場合のMPDファイルの例を示している。図10のMPDファイルは、図8の2つのSupplementalProperty要素808及び809に代えて、1つのSupplementalProperty要素1001が含まれる。すなわち、1つのSupplementalProperty要素1001によって、AdaptationSetの集合の定義と、集合ごとの品質ランクの差に関する設定とが定義される。
SupplementalProperty要素1001は、schemeIdUri属性とその値についてはSupplementalProperty要素808と同様の構成を有する。一方、SupplementalProperty要素1001は、value属性において、SupplementalProperty要素808及び809と異なる「1,2,1:3,4,2」という値を有している。ここで、記号「:」は、2つの集合に関する情報の区切りを示している。すなわち、「1,2,1」が第1集合(第1セットグループ)に関する情報を示し、「3,4,2」が第2集合(第2セットグループ)に関する値を示す。そして、1つの集合に関する情報のうち、最後の値(右端の値)が、その集合における品質ランクの差に関する設定を示す値であり、それ以外が、その集合に属するAdaptationSetのidを示している。すなわち、「1,2,1」は、idが「1」及び「2」のAdaptationSetからなる集合について、品質ランクの差に関する設定値が「1」であることを示す。同様に、「3,4,2」は、idが「3」及び「4」のAdaptationSetからなる集合について、品質ランクの差に関する設定値が「2」であることを示す。すなわち、SupplementalProperty要素1001は、図8のSupplementalProperty要素808とSupplementalProperty要素809との組み合わせと同様の意味を有する。なお、AdaptationSetの識別子と品質ランクの差に関する設定の情報との順番はこれに限定されず、例えば品質ランクの差に関する設定の情報が先に(左側に)配置されてもよい。
このように、サーバ102が、集合に属するAdaptatioSetの識別子と、その集合における品質ランクの差に関する設定に関する情報とを単一のSupplementalProperty要素に記述することで、MPDファイルの記述量が削減されうる。
(構成例4)
最後に、MPDファイルの構成の第4の例について図11を用いて説明する。図11は、図2Eに示されるようなタイルの集合化が行われた場合のMPDファイルの例を示している。なお、図11に示すMPDファイルの構成が、図2Dに示されるようなタイルの集合化が行われた場合にも使用可能であることは明らかである。図11のMPDファイルは、図9の2つのSupplementalProperty要素910及び911に代えて、1つのSupplementalProperty要素1101が含まれる。すなわち、1つのSupplementalProperty要素1101によって、AdaptationSetの集合の定義と、集合ごとの品質ランクの差に関する設定とが定義される。
最後に、MPDファイルの構成の第4の例について図11を用いて説明する。図11は、図2Eに示されるようなタイルの集合化が行われた場合のMPDファイルの例を示している。なお、図11に示すMPDファイルの構成が、図2Dに示されるようなタイルの集合化が行われた場合にも使用可能であることは明らかである。図11のMPDファイルは、図9の2つのSupplementalProperty要素910及び911に代えて、1つのSupplementalProperty要素1101が含まれる。すなわち、1つのSupplementalProperty要素1101によって、AdaptationSetの集合の定義と、集合ごとの品質ランクの差に関する設定とが定義される。
SupplementalProperty要素1101は、schemeIdUri属性とその値については、SupplementalProperty要素910と同様の構成を有する。また、SupplementalProperty要素1101は、default_max_quality_degradation属性については、SupplementalProperty要素911と同様の構成を有する。一方、SupplementalProperty要素1101は、value属性において、SupplementalProperty要素910及び911と異なる「(1,2,4,5),1:(3,6):(7,8,9)」という値を有する。ここで、記号「:」は、2つの集合に関する情報の区切りを示している。この構成は、図10のSupplementalProperty要素1001において、品質ランクの差に関する設定に関する値として、default_max_quality_degradation属性で指定される値が省略された構成と言える。すなわち、SupplementalProperty要素1101は、図10のSupplementalProperty要素1001と図9のSupplementalProperty要素910及び911とが組み合わされたような構成を有する。このvalue属性の記述において、「(1,2,4,5),1」は、idが「1」、「2」、「4」及び「5」のAdaptationSetの集合(第1セットグループ)で、品質ランクの差に関する設定に関する値が「1」であることを示している。一方、「(3,6)」は、idが「3」及び「6」のAdaptationSetの集合(第2セットグループ)で、品質ランクの差に関する設定に関する値が、default_max_quality_degradation属性で指定される値であることを示している。同様に、「(7,8,9)」は、idが「7」、「8」及び「9」のAdaptationSetの集合(第3セットグループ)で、品質ランクの差に関する設定に関する値が、default_max_quality_degradation属性で指定される値であることを示す。
なお、SupplementalProperty要素1101において、集合に属するAdaptationSetのidは、括弧(「(」及び「)」)で括られている。これは、例えば「3,6」のような値において「6」がAdaptationSetのidであるか、品質ランクの差に関する設定に関する値であるかが区別できなくなるおそれがあるからである。ただし、例えば集合に属するAdaptationSetのidと、品質ランクの差に関する設定に関する値との区切りが判別可能な文字が用いられることによって、括弧は用いられなくてもよい。例えば、「1,2,4,5@1」のように表記されることで、MPDファイルを受信した機器が、idが「1」、「2」、「4」及び「5」のAdaptationSetの集合で、品質ランクの差に関する設定に関する値が「1」であることを判別することができる。これ以外にも、他の記述方式で集合と品質ランクの差に関する設定に関する値とが記述されてもよい。例えば、集合の情報と品質ランクの差に関する設定の情報との記述順序は、例えば品質ランクの差に関する設定の情報が先に(左側に)記載されるなど、逆であってもよい。
このように、サーバ102が、各集合に属するAdaptatioSetの識別子と、その集合の品質ランクの差に関する設定の情報とを単一のSupplementalProperty要素に記述することで、MPDファイルの記述量が削減されうる。
なお、schemeIdUri属性の値は、本実施形態で定義されている値「urn:mpeg:dash:quality_equivalence」等に限定されず、ほかの文字列で記述されていてもよい。すなわち、AdaptationSetの集合を定義することや、品質ランクの差に関する設定に関する情報を定義すること等、本実施形態において特定されるべき情報が判別可能である限りにおいて、任意の文字列が用いられうる。同様に、「default_max_quality_degradation」や「value」等の属性の名称についても、同様の意義を示す別の文字列によって定義されてもよい。また、品質ランクの差に関する設定を未定義とする場合のために、「undefined」等の、設定が定義されていないことを示す文字列が定義されてもよい。なお、同じ品質ランクの差に関する設定が用いられる集合に対しては、同じ識別子が割り当てられてもよい。例えば、図9のSupplementalProperty要素910において、valueが「1,2,4,5,x:3,6,y:7,8,9,y」のように規定されてもよい。このような規定によれば、idが「3」と「6」のAdaptationSetの集合と、idが「7,8,9」のAdaptationSetの集合とが、別の集合であるが、同じ品質ランクの差に関する設定を用いることが特定されうる。なお、品質ランクの差に関する設定がすべての集合に対して1つ定義される場合は、MPDファイルに対して、AdaptationSetの集合に関する情報を記述せず、品質ランクの差に関する設定の情報だけを記述するようにしてもよい。
なお、本実施形態では、同じ品質ランクの差に関する設定を共有するAdaptationSetの集合を明示的に記述している例について説明したが、これに限られない。例えば、それぞれのAdaptationSetに対して、品質ランクの差に関する設定を個別に定義してもよい。その場合、SupplementalProperty要素808において、value属性を「1,1:2,1:3,2:4,2」のように定義する(この場合、SupplementalProperty要素809は省略される)。「1,1」によって、idが「1」のAdaptationSetの品質ランクの差に関する設定値が1であることが示される。なお「2,1」、「3,2」、「4,2」のそれぞれは、idが「2」、「3」、「4」のAdaptationSetの品質ランクの差に関する設定値が、それぞれ「1」、「2」、「2」であることを示す。なお、MPDに対するSupplementalProperty要素、および各属性の記述方法、識別子は、この例に限定されない。なお、1つのAdaptationSetに関する品質ランクの差に関する設定は、例えば、同じ設定値を有するAdaptationSetを1つの集合として、その集合に適用される設定でありうる。また、1つのAdaptationSetに関する品質ランクの差に関する設定は、例えば経時変化により、同じタイルに関する複数のビデオに関して生じる差に関する設定であってもよい。
また、本実施形態では、AdaptationSetの集合を1つの要素で定義しているが、AdaptationSetの集合ごとに、SupplementalProperty要素が定義されてもよい。例えば、AdaptationSetの1つの集合に関して、品質ランクの差に関する設定に関する情報と、その集合に属するAdaptationSetを規定する情報とを含むSupplementalProperty要素が定義される。例えば、図8のSupplementalProperty要素808及び809によって示される内容が、別の2つのSupplementalProperty要素によって表現される。このとき、2つのSupplementalProperty要素は、それぞれ、idが「1」及び「2」のAdaptationSetが属する集合と、idが「3」及び「4」のAdaptationSetが属する集合とに関する。これらのSupplementalProperty要素は、例えば、以下のように表現される。
<SupplementalProperty schemeIdUri=“urn:mpeg:dash:quality_equivalence” quality_degradation=“1” value=“1,2”>
<SupplementalProperty schemeIdUri=“urn:mpeg:dash:quality_equivalence” quality_degradation=“2” value=“3,4”>
1つ目の要素は、idが「1」と「2」のAdaptationSetが属する集合において、品質ランクの差に関する設定値が「1」であることを示す。2つ目の要素は、idが「3」と「4」のAdaptationSetが属する集合において、品質ランクの差に関する設定値が「2」であることを示す。なお、MPDに対するSupplementalProperty要素、および各属性の記述方法、識別子は、これに限定されない。
<SupplementalProperty schemeIdUri=“urn:mpeg:dash:quality_equivalence” quality_degradation=“2” value=“3,4”>
1つ目の要素は、idが「1」と「2」のAdaptationSetが属する集合において、品質ランクの差に関する設定値が「1」であることを示す。2つ目の要素は、idが「3」と「4」のAdaptationSetが属する集合において、品質ランクの差に関する設定値が「2」であることを示す。なお、MPDに対するSupplementalProperty要素、および各属性の記述方法、識別子は、これに限定されない。
なお、本実施形態で定義した、要素、識別子、属性に限らず、その他の要素、識別子、属性に、AdaptationSetの集合、その集合ごとに共有される品質ランクの差に関する設定値、集合と設定値とを関連付ける情報等が定義されてもよい。例えば、Preselection要素に対して、その要素で定義されるAdaptationSetに共通の品質ランクの差に関する設定が定義されてもよく、その他の既存の要素、識別子、属性が活用されてもよい。また、新しい要素、識別子、属性が定義されてもよい。また、共通の品質ランクの差に関する設定を定義しないAdaptationSetに対しては、他のRepresentationとの品質ランクの差に関する設定の値を未定義としてもよい。この場合、クライアント101は、あるAdaptationSetについて、他のAdaptationSetと共通の品質ランクの差に関する設定が定義されていない場合は、任意のRepresentationを選択しうる。また、クライアント101は、他のAdaptationSetと同じqualityRankingを選択してもよい。また、これら以外の方法が用いられてもよい。
なお、本実施形態では、すべてのAdaptationSetがいずれかの集合に属するようにMPDの例を説明しているが、これに限られない。例えば、1つ以上のAdaptationSetが集合に属さないようにしてもよい。これについて、図9を用いて説明する。例えば、idが「7」、「8」、及び「9」のAdaptationSetが集合に属さず、それぞれが独立した集合であるとする。この場合、SupplementalProperty要素910は、以下のように、idが「7」、「8」、及び「9」のAdaptationSetに関する記述が省略されて構成されうる。
<SupplementalProperty schemeIdUri=“urn:mpeg:dash:quality_equivalence” value=“1,2,4,5,x:3,6,y”>
<SupplementalProperty schemeIdUri=“urn:mpeg:dash:quality_equivalence” value=“1,2,4,5,x:3,6,y”>
また、SupplementalProperty要素910は、以下のように、idが「7」、「8」、及び「9」のAdaptationSetが、それぞれ別個の集合として記述されてもよい。
<SupplementalProperty schemeIdUri=“urn:mpeg:dash:quality_equivalence” value=“1,2,4,5,x:3,6,y:7,z:8,v;9,w”>
<SupplementalProperty schemeIdUri=“urn:mpeg:dash:quality_equivalence” value=“1,2,4,5,x:3,6,y:7,z:8,v;9,w”>
なお、本実施形態では、品質ランクの差に関する設定を、特定のAdaptationSetの集合に含まれるqualityRankingの値の差として定義しているが、これに限られない。例えば品質ランクの差に関する設定は、ビットレート、解像度、サンプリングレートなどの実際の値に基づいて行われてもよい。
(処理の流れ)
次に、本実施形態に係るクライアント101及びサーバ102が実行する処理の流れの例について説明する。以下では、まず、図12A及び図12Bを用いて、サーバ102が実行する処理の流れの例について説明し、続いて、図13を用いて、クライアント101が実行する処理の流れの例について説明する。
次に、本実施形態に係るクライアント101及びサーバ102が実行する処理の流れの例について説明する。以下では、まず、図12A及び図12Bを用いて、サーバ102が実行する処理の流れの例について説明し、続いて、図13を用いて、クライアント101が実行する処理の流れの例について説明する。
(サーバ102の処理)
まず、セグメント生成部506は、MPEG-DASH形式のセグメントを生成する(S1201)。ここで、セグメント生成部506は、品質の異なる複数のセグメントを生成し、そのセグメントに関して品質ランクの付与を行う。なお、蓄積されているデータをVoD(Video On Demand)方式で送信する場合は、S1201の処理は省略されてもよく、その場合、過去に生成されたセグメントが使用されうる。なお、ビデオの送信元の装置がサーバ102と異なる装置である場合には、サーバ102においてはS1201の処理は行われず、セグメントの生成とそのセグメントの品質ランクの付与は、例えば、セグメントを送信するサーバによって行われる。
まず、セグメント生成部506は、MPEG-DASH形式のセグメントを生成する(S1201)。ここで、セグメント生成部506は、品質の異なる複数のセグメントを生成し、そのセグメントに関して品質ランクの付与を行う。なお、蓄積されているデータをVoD(Video On Demand)方式で送信する場合は、S1201の処理は省略されてもよく、その場合、過去に生成されたセグメントが使用されうる。なお、ビデオの送信元の装置がサーバ102と異なる装置である場合には、サーバ102においてはS1201の処理は行われず、セグメントの生成とそのセグメントの品質ランクの付与は、例えば、セグメントを送信するサーバによって行われる。
続いて、プレイリスト生成部507が、MPEG-DASH標準(ISO/IEC23009-1)または当該標準の拡張で規定されているMPD(プレイリスト)の生成を開始する(S1202)。MPDファイルには、図8~図11を用いて説明したように、分割された複数のタイルのそれぞれについて、複数の異なる品質のセグメントのそれぞれにアクセスするための複数のURLを格納する、複数のAdaptationSet要素が記述される。なお、URLは、Representation要素内に格納される形式で記述される。MPDファイルに記述される情報はこれらの情報に限られず、標準規格で規定されているその他の情報が記述されてもよい。また、Representation要素内には、そのRepresentation要素内のURLにおいて取得されるビデオの品質ランクを示すqualityRanking属性が記述される。ここでの品質ランクは、1つのAdaptationSet内で規定されている複数のRepresentation要素に従って取得されるビデオの品質の高さの順位である。なお、品質ランクの情報は、MPDファイル以外のHTMLファイルやjavascriptファイルに記述されてもよい。
その後、集合解析部512は、品質ランクの差に関する設定を共有すべきAdaptationSetの集合を設定するために、ビデオの解析を行う(S1203)。なお、集合解析部512は、タイルの集合の情報が事前に与えられている場合、その情報を利用して集合を設定してもよく、その場合、ビデオの解析は行われなくてもよい。集合設定部508は、集合解析部512による解析結果に基づいて、AdaptationSetの集合を設定する(S1204)。集合管理部509は、集合設定部508が設定した集合の情報、すなわち、それぞれの集合に含まれるAdaptationSetの識別子を管理する。集合管理部509は、集合ごとに、集合を識別するための識別子を定義する。そして、プレイリスト生成部507は、集合管理部509が管理する集合が1つか否かを判定する(S1205)。
プレイリスト生成部507は、集合管理部509が管理する集合が複数存在すると判定した場合(S1205でNO)は、その複数の集合のそれぞれに属するAdaptationSetの識別子の情報をMPDファイルに記述する(S1206)。例えば、プレイリスト生成部507は、図8~図11を用いて説明したようなSupplementalProperty要素を定義して、その中において、各集合に属するAdaptationSetの識別子を格納する。品質差情報決定部510は、AdaptationSetの集合ごとに、用いるべき品質ランクの差に関する設定を決定する(S1207)。集合管理部509は、品質差情報決定部510が決定した集合ごとの品質ランクの差に関する設定を、それぞれの集合と関連付けて管理する。
プレイリスト生成部507は、集合管理部509に管理されている品質ランクの差に関する設定が全集合で同じ値であるかを判断する(S1208)。プレイリスト生成部507は、少なくとも一部の集合において品質ランクの差に関する設定が他の集合と異なると判定した場合(S1208でNO)は、集合管理部509が管理している集合ごとの識別子をMPDファイルに記述する(S1209)。例えば、プレイリスト生成部507は、図8~図11を用いて説明したようなSupplementalProperty要素内で、各集合の識別子(例えば「x」、「y」、「z」)を格納する。
プレイリスト生成部507は、集合管理部509が管理している集合ごとの品質ランクの差に関する設定値について、共通設定値を用いるか否かを判定する(S1210)。なお、このときに、プレイリスト生成部507は、集合管理部509が管理している品質ランクの差に関する設定の中で、最も多くの集合に適用される値を、共通設定値として決定しうる。なお、共通設定値は、これ以外の方法に基づいて決定されてもよい。また、プレイリスト生成部507は、例えば、共通設定値を用いることによってMPDファイルの記述量が減少するか否かを判定することにより、そのような共通設定値を用いるか否かを判定しうる。ただし、これは一例に過ぎず、プレイリスト生成部507は、他の基準に基づいて、共通の設定値を用いるか否かを判定してもよい。
プレイリスト生成部507は、共通設定値を用いないと判定した場合(S1210でNO)は、集合管理部509が管理している品質ランクの差に関する集合ごとの設定値をMPDファイルに記述する(S1211)。例えば、プレイリスト生成部507は、図8のSupplementalProperty要素809や図10のSupplementalProperty要素1001のような記述をMPDファイルに含める。
一方、プレイリスト生成部507は、共通設定値を用いると判定した場合(S1210でYES)は、その共通設定値をMPDファイルに記述する(S1212)。プレイリスト生成部507は、例えば図9及び図11に関して説明した「default_max_quality_degradation」属性として、この共通設定値をMPDファイルに記述する。そして、プレイリスト生成部507は、共通設定値が適用されない集合について、その集合に適用される品質ランクの差に関する設定値を、MPDファイルに記述する(S1213)。
そして、プレイリスト生成部507は、クライアント101がセグメントを取得して再生するために必要な、本実施形態で説明していないその他の情報をMPDファイルに記述し、MPDファイルの生成を完了する(S1214)。その後、サーバ102は、HTTP通信制御部511を介して、MPEG-DASH形式に従うビデオの送信を開始する。(S1215)。なお、サーバ102以外の装置がビデオを送信する場合、サーバ102は、MPDファイルのみをクライアント101へと送信し、ビデオの送信は行わなくてもよい。この場合、クライアント101は、サーバ102から受信したMPDファイルに従ってサーバ102以外の装置にアクセスして、各タイルに対応するセグメントを取得することとなる。
プレイリスト生成部507は、MPEG-DASHのライブプロファイルに従う場合、MPDファイルの更新を行うか否かを判定し(S1216)、MPDファイルの更新を行わないと判定した場合(S1216でNO)は、本処理を終了する。一方、プレイリスト生成部507は、MPDファイルの更新を行うと判定した場合(S1216でYES)は、処理をS1202へと戻す。
プレイリスト生成部507は、S1205において、集合管理部509が管理する集合が1つのみであると判定した場合(S1205でYES)は、その集合に属するAdaptationSetの識別子をMPDファイルに記述する(S1217)。すなわち、プレイリスト生成部507は、品質ランクの差に関する設定を共有する1つの集合内のAdaptationSetの識別子をMPDファイルに記述する。なお、プレイリスト生成部507は、すべてのAdaptationSetに品質ランクの差に関する設定が適用される場合は、S1217の処理を行わなくてもよい。その後、プレイリスト生成部507は、品質ランクの差に関する設定の設定値を、MPDファイルに記述する(S1218)。また、プレイリスト生成部507は、全集合で品質ランクの差に関する設定が同じであると判定した場合(S1208でYES)は、集合ごとの識別子をMPDファイルに記述することなく、品質ランクの差に関する設定の設定値を、MPDファイルに記述する(S1218)。S1218の処理の後、処理はS1214へと移る。
なお、サーバ102は、共通の設定値を使用しない場合(例えばMPDファイルを図8や図10のように構成する場合)、S1210、S1212及びS1213の処理を行わなくてもよい。この場合、サーバ102は、S1209の処理を実行した後に処理をS1211に移す。一方、サーバ102は、常に共通の設定値を使用する場合(例えばMPDファイルを図9や図11のように構成する場合)は、S1210及びS1211の処理を行わなくてもよい。この場合、サーバ102は、S1209の処理を実行した後に処理をS1212に移す。
また、サーバ102は、全てのAdaptationSetに対して共通の設定値を定義する場合、S1203の処理を実行した後に、処理をS1217に移しうる。さらに、サーバ102は、AdaptationSetのidを記載せずに全てのAdaptationSetに共通の設定値を定義する場合、S1203の処理を実行した後に、処理をS1219に移してもよい。
なお、図12A及び図12Bのフローチャートに示した各処理ステップは、ここで説明した内容とことなる処理と置き換えられてもよいし、処理の順序が入れ替えられてもよい。例えば、プレイリスト生成部507は、MPDファイルに情報を記述するためのS1206、S1209、S1211、S1213等の処理を、S1215の処理の前にまとめて行ってもよいし、その他の任意のタイミングで行ってもよい。また、ビデオの解析及びAdaptationSetの集合の設定(S1203及びS1204)の処理は、例えば、ビデオのセグメントの生成(S1201)と並行して行われるなど、MPDファイルの生成の開始前(S1202の処理の前)に行われてもよい。
また、一例として、S1201、S1202、S1204、S1206、S1207、S1209、S1211、及びS1214に記載のステップのみが実行されてもよい。さらに、S1201~S1204、S1206、S1209、S1212~S1214のステップのみが実行されてもよい。また、S1204、S1206、S1207、S1209、S1211のみが実行されてもよい。これらのように、一部のステップが省略されても、本実施形態に係る特徴を有するMPDファイルは生成されうる。
なお、S1205及びS1217の処理が実行されることにより、AdaptationSetの集合が1つである場合にMPDファイルの記述量を削減することができる。また、S1208及びS1218の処理が実行されることにより、AdaptationSetの集合の全てに共通の設定が適用される場合に、MPDファイルの記述量を削減することができる。また、S1210、S1212及びS1213の処理が実行されることにより、1つまたは複数のAdaptationSetの集合に共通の設定値が適用される場合に、共通の設定値を1度だけ定義することによって、MPDの記述量を削減することができる。これらの結果、サーバ102及びクライアント101の処理負荷をそれぞれ軽減することができる。
(クライアント101の処理)
まず、プレイリスト取得部713は、HTTP通信制御部707を介して、サーバ102からMPDファイルを取得し(S1301)、プレイリスト解析部708は、その取得したMPDファイルを解析する(S1302)。プレイリスト解析部708は、MPDファイルの解析結果に基づいて、AdaptationSetの集合に関する情報を取得し、その集合情報を集合管理部709に保存する(S1303)。なお、クライアント101は、プレイリスト解析部708がMPDファイルを解析した結果、集合情報が存在しないと判断した場合、サーバ102から提供されたHTMLファイルやjavascriptファイル等から集合情報を取得してもよい。プレイリスト解析部708は、MPDファイルの解析結果に基づいて、AdaptationSetの集合ごとの品質ランクの差に関する設定値を取得し、集合管理部709に保存済みの集合情報と関連付けて、集合管理部709に保存する(S1304)。なお、クライアント101は、MPDファイルに品質ランクの差に関する設定値が定義されていないとプレイリスト解析部708が判定した場合、サーバ102から提供されたHTMLファイルやjavascriptファイル等を通じてこの設定値を取得しうる。また、クライアント101は、1つ以上の集合に共通の共通設定値が定義されていると判定された場合、AdaptationSetの集合のうちの設定値が明示的に定義されていない集合に対して、その共通設定値を適用してもよい。なお、クライアント101は、サーバ102から取得したMPDに品質ランクの差に関する設定の情報が含められていない場合は、ビットレート、解像度、サンプリングレート等のMPDから取得可能な他の値に基づいて、独自に設定値を定義してもよい。
まず、プレイリスト取得部713は、HTTP通信制御部707を介して、サーバ102からMPDファイルを取得し(S1301)、プレイリスト解析部708は、その取得したMPDファイルを解析する(S1302)。プレイリスト解析部708は、MPDファイルの解析結果に基づいて、AdaptationSetの集合に関する情報を取得し、その集合情報を集合管理部709に保存する(S1303)。なお、クライアント101は、プレイリスト解析部708がMPDファイルを解析した結果、集合情報が存在しないと判断した場合、サーバ102から提供されたHTMLファイルやjavascriptファイル等から集合情報を取得してもよい。プレイリスト解析部708は、MPDファイルの解析結果に基づいて、AdaptationSetの集合ごとの品質ランクの差に関する設定値を取得し、集合管理部709に保存済みの集合情報と関連付けて、集合管理部709に保存する(S1304)。なお、クライアント101は、MPDファイルに品質ランクの差に関する設定値が定義されていないとプレイリスト解析部708が判定した場合、サーバ102から提供されたHTMLファイルやjavascriptファイル等を通じてこの設定値を取得しうる。また、クライアント101は、1つ以上の集合に共通の共通設定値が定義されていると判定された場合、AdaptationSetの集合のうちの設定値が明示的に定義されていない集合に対して、その共通設定値を適用してもよい。なお、クライアント101は、サーバ102から取得したMPDに品質ランクの差に関する設定の情報が含められていない場合は、ビットレート、解像度、サンプリングレート等のMPDから取得可能な他の値に基づいて、独自に設定値を定義してもよい。
品質決定部711は、複数のAdaptationSetのそれぞれについて、品質ランクの差に関する設定に基づいて、取得するビデオ(取得対象のビデオに関する情報を含んだRepresentation)を選択する(S1305)。セグメント取得部710は、品質決定部711が決定したビデオの再生に必要となる初期化セグメントとメディアセグメントをサーバ102から取得する(S1306、S1307)。セグメント解析部706は、取得したセグメントを解析し、表示制御部702を介して、そのセグメントに基づくビデオを、表示部603に表示させる(S1308)。
その後、品質決定部711は、取得するビデオ(タイル)の品質を変更するか否かを判定する(S1309)。なお、取得するビデオの品質を変更するか否かの判定のタイミングは他のタイミングであってもよく、任意のタイミングでこの判定が行われうる。例えば、メディアセグメントの取得処理(S1307)の途中や、再生処理(S1308)の途中に、本判定が行われてもよい。また、例えば、ユーザの操作により、クライアント101が表示するAdaptationSetの一部または全部が変更された場合にこの判定が行われうる。また、クライアント101は、セグメントの取得スピードが遅くなった場合に、ネットワークの帯域幅に余裕がないと判断して、取得するビデオの品質を変更してもよい。なお、この判定は、AdaptationSetごと(タイルごと)に行われてもよい。例えば、一部のタイルに関するビデオの取得スピードが遅くなった場合に、そのビデオの品質を変更すると判定されうる。S1309の処理によって、ネットワークの帯域幅などの状況の変化に応じて、動的に、取得するビデオを変更することが出来る。
品質決定部711は、取得するビデオの品質を変更すると判定した場合(S1309でYES)、処理をS1305に戻し、その変更と、設定値とに基づいて、他のタイルに関するビデオの品質を変更する必要があるかを決定しうる。なお、クライアント101は、取得する全てのタイルに関するビデオの品質を同様に変更する場合には、S1305の処理を行わずに、処理をS1306に進めてもよい。一方、取得するビデオの品質を変更しないと判定された場合(S1309でNO)は、セグメント取得部710は、メディアセグメントの取得を終了するか否かを判定する(S1310)。クライアント101は、メディアセグメントの取得を終了すると判定された場合(S1310でYES)は本処理を終了し、メディアセグメントの取得を終了しないと判定された場合(S1310でNO)は、処理をS1307へ戻す。
なお、フローチャートに記載の処理ステップはここで説明したステップ、順番に限定されない。例えば、初期化セグメント取得処理(S1306)の後にS1305の処理が実行されてもよく、また、S1309及びS1310の判定は逆の順序で行われてもよい。また、クライアント101は、S1303~S1305の処理のみを実行してもよい。
なお、本実施形態では、MPDファイルに、AdaptationSetの集合情報、それぞれの集合の識別子、品質ランクの差に関する設定を記述しているが、これに限定されない。例えば、一部または全部の情報がHTMLファイルやJavascriptファイルに記述されてもよいし、これらの情報がJavascriptファイルを通じて動的に取得されてもよい。これにより、MPDファイルの要素や属性を解析する能力を有しないクライアントであっても、AdaptationSetの集合情報、集合ごとの識別子、集合ごとの品質ランクの差に関する設定の情報を取得することができるようになる。
また、本実施形態は、1つのピクチャをタイルに分割したビデオを例として説明したが、これに限られない。例えば複数のメディアデータのストリーミングが行われる場合にも、本実施形態で説明した上述の手法が適用されうる。例えば、異なるカメラで生成された複数のビデオをタイル状に並べて表示する場合や、複数のオーディオデータを合成して再生する場合等に、本実施形態に係る上述の手法が適用されうる。また、上述の手法は、ビデオの途中でAdaptationSetの構成が変わる場合にも適用されうる。
以上のように、本実施形態によれば、サーバ102は、MPDファイルに、複数のAdaptationSetの集合情報、集合ごとの識別子、そして、集合ごとの品質ランクの差に関する設定の情報を記述する。クライアント101は、これらの情報を組み合わせて用いることにより、複数のAdaptationSetを同時に再生する場合に、品質ランクの差に関する設定に応じたRepresentationを選択して再生する制御を行うことができる。その結果、クライアント101を使用するユーザは、同時に再生される複数ビデオ間の品質差を気にせずにビデオの視聴を行うことが可能となる。その結果、ユーザのユーザエクスペリエンスを向上させることができる。
<<その他の実施形態>>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
本願は、2017年2月7日提出の日本国特許出願特願2017-020677を基礎として優先権を主張するものであり、その記載内容の全てを、ここに援用する。
Claims (14)
- ビデオをリクエストするためにクライアントにより参照される通知情報を前記クライアントに送信する通信装置であって、
品質ランクが異なる第1複数ビデオに対応する第1セットと、品質ランクが異なる第2複数ビデオに対応する第2セットとを含む複数セットのうち、前記品質ランクの差に関する設定が共有されるセットグループに関する情報と、クライアントに対して送信される複数ビデオの品質ランクの差に関する前記セットグループごとの設定を示す情報とにおいて、前記セットグループを共通の識別子によって表現した前記通知情報を生成する生成手段と、
前記生成手段により生成された通知情報を前記クライアントへ送信する送信手段と、
を有することを特徴とする通信装置。 - ビデオをリクエストする通信装置であって、
品質ランクが異なる第1複数ビデオに対応する第1セットと、品質ランクが異なる第2複数ビデオに対応する第2セットとを含む複数セットのうち、前記品質ランクの差に関する設定が共有されるセットグループに関する情報と、前記通信装置に対して送信される複数ビデオの品質ランクの差に関する前記セットグループごとの設定を示す情報とにおいて、前記セットグループを共通の識別子によって表現した通知情報を他の装置から受信する受信手段と、
前記受信手段によって受信された通知情報に基づいて、前記複数セットのうち1以上のセットのビデオを取得する取得手段と、
を有することを特徴とする通信装置。 - 前記品質ランクの差に関する設定が共有される前記セットグループに関する前記情報は、当該セットグループに関する前記共通の識別子と当該セットグループに属するセットの識別子とが関連付けられる情報である、
ことを特徴とする請求項1又は2に記載の通信装置。 - 前記セットグループごとの設定を示す前記情報は、当該セットグループに関する前記共通の識別子と当該セットグループに関する前記設定を示す値とを関連付ける情報である、
ことを特徴とする請求項1から3のいずれか1項に記載の通信装置。 - 前記通知情報は、複数の前記セットグループにおいて前記設定が共通して適用される場合に、当該共通して適用される共通設定を示す値を含み、
前記セットグループごとの設定を示す前記情報は、前記共通設定が適用される前記セットグループについては前記共通の識別子を含まない、
ことを特徴とする請求項1から4のいずれか1項に記載の通信装置。 - 前記共通設定を示す値は、前記セットグループごとの設定を示す前記情報に含まれる、
ことを特徴とする請求項5に記載の通信装置。 - 前記品質ランクの差に関する設定が共有される前記セットグループに関する前記情報と、前記セットグループごとの設定を示す前記情報との少なくともいずれかは、第1のセットグループに関する情報と第2のセットグループに関する情報とを所定の記号で区切った文字列によって表現される、
ことを特徴とする請求項1から6のいずれか1項に記載の通信装置。 - 前記通知情報は、MPEG-DASHのMedia Presentation Description(MPD)ファイルである、
ことを特徴とする請求項1から7のいずれか1項に記載の通信装置。 - 前記品質ランクの差に関する設定が共有される前記セットグループに関する前記情報および前記セットグループごとの設定を示す前記情報が、前記MPDの要素として含まれる、
ことを特徴とする請求項8に記載の通信装置。 - 前記複数セットのそれぞれを示す情報が前記MPDの複数のAdaptationSet要素として含まれ、
前記複数のAdaptationSet要素のそれぞれにおいて当該AdaptationSet要素に対応するセットについての前記複数ビデオのそれぞれに関する情報が、複数のRepresentation要素として含まれ、
前記Representation要素には、当該Representation要素に含まれる情報に関するビデオの品質ランクに関する属性の情報が含まれる、
ことを特徴とする請求項8又は9に記載の通信装置。 - ビデオをリクエストするためにクライアントにより参照される通知情報を前記クライアントに送信する通信装置が実行する方法であって、
(i)品質ランクが異なる第1複数ビデオに対応する第1セットと、品質ランクが異なる第2複数ビデオに対応する第2セットと、を含む複数セットのグルーピングの結果を表すグループ情報と、
(ii)前記グループ情報に応じた複数のグループごとに前記クライアントに対して推奨する品質ランクの差に関する情報が表現された品質差情報と、
を少なくとも含む通知情報を生成する生成工程と、
前記生成工程により生成された前記通知情報を前記クライアントに対して送信する送信工程とを有することを特徴とする方法。 - ビデオをリクエストする通信装置が実行する方法であって、
(i)品質ランクが異なる第1複数ビデオに対応する第1セットと、品質ランクが異なる第2複数ビデオに対応する第2セットと、を含む複数セットのグルーピングの結果を表すグループ情報と、
(ii)前記グループ情報に応じた複数のグループごとにクライアントに対して推奨する品質ランクの差に関する情報が表現された品質差情報と、
を少なくとも含む通知情報を他の装置から受信する受信工程と、
前記受信工程により受信された前記通知情報に基づいて、前記複数セットのうち1以上のセットのビデオを取得する取得工程とを有することを特徴とする方法。 - ビデオをリクエストするためにクライアントにより参照される通知情報を送信するための方法をコンピュータに実行させるためのプログラムであって、前記方法は、
品質ランクが異なる第1複数ビデオに対応する第1セットと、品質ランクが異なる第2複数ビデオに対応する第2セットとを含む複数セットのうち、前記品質ランクの差に関する設定が共有されるセットグループに関する情報と、クライアントに対して送信される複数ビデオの品質ランクの差に関する前記セットグループごとの設定を示す情報とにおいて、前記セットグループを共通の識別子によって表現した前記通知情報を生成する生成工程と、
前記生成工程により生成された通知情報を前記クライアントへ送信する送信工程とを有することを特徴とするプログラム。 - コンピュータに、ビデオをリクエストするための方法を実行させるためのプログラムであって、前記方法は、
品質ランクが異なる第1複数ビデオに対応する第1セットと、品質ランクが異なる第2複数ビデオに対応する第2セットとを含む複数セットのうち、前記品質ランクの差に関する設定が共有されるセットグループに関する情報と、通信装置に対して送信される複数ビデオの品質ランクの差に関する前記セットグループごとの設定を示す情報とにおいて、前記セットグループを共通の識別子によって表現した通知情報を他の装置から受信する受信工程と、
前記受信工程により受信された通知情報に基づいて、前記複数セットのうち1以上のセットのビデオを取得する取得工程とを有することを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/516,420 US20190342628A1 (en) | 2017-02-07 | 2019-07-19 | Communication device and method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-020677 | 2017-02-07 | ||
JP2017020677A JP2018129628A (ja) | 2017-02-07 | 2017-02-07 | 通信装置、通信システム、方法、及びプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/516,420 Continuation US20190342628A1 (en) | 2017-02-07 | 2019-07-19 | Communication device and method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018146996A1 true WO2018146996A1 (ja) | 2018-08-16 |
Family
ID=63107491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/000647 WO2018146996A1 (ja) | 2017-02-07 | 2018-01-12 | 通信装置、方法、及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190342628A1 (ja) |
JP (1) | JP2018129628A (ja) |
WO (1) | WO2018146996A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11546402B2 (en) * | 2019-01-04 | 2023-01-03 | Tencent America LLC | Flexible interoperability and capability signaling using initialization hierarchy |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495675B1 (en) * | 2012-07-30 | 2013-07-23 | Mdialog Corporation | Method and system for dynamically inserting content into streaming media |
-
2017
- 2017-02-07 JP JP2017020677A patent/JP2018129628A/ja not_active Ceased
-
2018
- 2018-01-12 WO PCT/JP2018/000647 patent/WO2018146996A1/ja active Application Filing
-
2019
- 2019-07-19 US US16/516,420 patent/US20190342628A1/en not_active Abandoned
Non-Patent Citations (1)
Title |
---|
FRANCK DENOUAL ET AL.: "Quality control in DASH", ISO/IEC JTC1/SC29/WG11 MPEG2017/M39935, January 2017 (2017-01-01), Geneva, CH, XP030068280, Retrieved from the Internet <URL:http://biblio.telecom-paristech.fr/cgi-bin/download.cgi?id=16780> [retrieved on 20180315] * |
Also Published As
Publication number | Publication date |
---|---|
JP2018129628A (ja) | 2018-08-16 |
US20190342628A1 (en) | 2019-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9936183B2 (en) | Playback device | |
KR102384489B1 (ko) | 정보 처리 장치, 정보 제공 장치, 제어 방법, 및 컴퓨터 판독가능 저장 매체 | |
JP6708271B2 (ja) | 情報処理装置、コンテンツ要求方法およびコンピュータプログラム | |
JP5829626B2 (ja) | 再生装置、再生装置の制御方法、生成装置、生成装置の制御方法、制御プログラム、及び該プログラムを記録した記録媒体 | |
JP6541309B2 (ja) | 送信装置、送信方法、及びプログラム | |
KR101545137B1 (ko) | 사용자 인터페이스를 생성하는 방법 및 장치 | |
JP2019110542A (ja) | サーバ装置、クライアント装置、コンテンツ配信方法およびコンピュータプログラム | |
WO2017145756A1 (ja) | ファイル生成装置およびファイル生成方法、並びに、再生装置および再生方法 | |
TW201720170A (zh) | 用戶變焦編碼內容解譯及表達方法及系統 | |
JPWO2017145757A1 (ja) | ファイル生成装置およびファイル生成方法、並びに、再生装置および再生方法 | |
JP6632550B2 (ja) | タイムピリオドにまたがってオブジェクトを識別する方法および対応デバイス | |
WO2018146996A1 (ja) | 通信装置、方法、及びプログラム | |
Stamos Katsigiannis et al. | 5G: Disruption in media and entertainment | |
JP2024040912A (ja) | 情報処理装置、受信装置、情報処理方法、及びプログラム |
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: 18751501 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18751501 Country of ref document: EP Kind code of ref document: A1 |