Client device and program for estimating cached files
The client device in content distribution systems estimates cache status by sending request packets and determining server responses, addressing inefficiencies in quality selection and improving user experience.
Patent Information
- Application Number
- JP2023036659
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-03-09
- Publication Date
- 2025-11-12
- Estimated Expiration
- 2043-03-09
AI Technical Summary
In content distribution systems that integrate DASH technology with ICN, the client device lacks the ability to accurately determine the cache status of segments in the cache device, leading to inefficient quality selection due to unknown cache contents.
A client device is equipped with a transmission means to send request packets for target segments, a determination means to identify segments sent by the server, and an estimation means to determine cache status based on the response, allowing it to infer whether the target file is cached in the cache device.
Enables accurate estimation of cache status in the cache device, optimizing content quality selection and reducing errors in quality switching, thereby enhancing user experience.
Smart Images

Figure 0007768922000001 
Figure 0007768922000002 
Figure 0007768922000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a technology for estimating the cache status of a file in a cache device in a content distribution system that distributes files in segments and that has a cache device that caches the segments. [Background technology]
[0002] Variable bit rate distribution technology is adopted in content distribution systems that distribute content such as videos. One example of a variable bit rate distribution technology is MPEG-DASH (Dynamic Adaptive Streaming over HTTP) described in Non-Patent Document 1. Hereinafter, the MPEG-DASH technology described in Non-Patent Document 1 will be simply referred to as DASH technology.
[0003] In DASH technology, a server device that publishes content stores multiple pieces of encoded data of different qualities for each piece of content. FIG. 1 shows an example of encoded data of three different qualities for the same content stored on a server device. Each piece of encoded data of each quality includes multiple files for the same time period of the content. In FIG. 1, the encoded data of each quality is composed of a total of Z files, and files Q1#k, Q2#k, and Q3#k (k is an integer from 1 to Z) are the kth files of high quality, medium quality, and low quality, respectively. The time period of the content in files Q1#k, Q2#k, and Q3#k is all the same. Note that the higher the quality, the larger the data volume, and therefore the higher the quality, the higher the bit rate required to distribute the file. In the following description, files Q1#k, Q2#k, and Q3#k will also be referred to as high-quality files, medium-quality files, and low-quality files, respectively.
[0004] A client device that acquires and plays content acquires the content from a server device in file units. At this time, the client device can select a quality (bit rate) for each file. For example, when network throughput is high, the client device requests high-quality files from the server device, and when network congestion causes throughput to decrease, the client device requests medium-quality or low-quality files from the server device. This allows a user of the client device to view content regardless of network conditions. The number of qualities, the number of files, the duration of each file, and other information available for a piece of content are described in an MPD (Media Presentation Description) file and stored in the server device. When requesting content delivery, the client device first acquires the MPD of the content from the server device, thereby determining the quality, the number of files, the duration of each file, and other information available for the content.
[0005] Meanwhile, a content distribution system called ICN (Information Centric Networking) has been proposed, which requests and distributes content based on a content name that indicates the content. Non-Patent Document 2 discloses one such system, CCN (Content Centric Networking). In ICN, content is divided into segments also called chunks, and client devices acquire content in units of segments. Therefore, the concept of DASH technology can also be applied to ICN. [Prior art documents] [Non-patent literature]
[0006] [Non-Patent Document 1] T. Stockhammer, "Dynamic adaptive streaming over HTTP-standards and design principles", Proceedings of ACM conference on Multimedia systems, pp. 133-144, February 2011. [Non-patent document 2] V. Jacobson,et al.,"Networking Named Content",in Proceedings of ACM CoNEXT 2009,December 2009. Summary of the Invention [Problem to be solved by the invention]
[0007] When the concept of DASH technology is applied to ICN, one file can be divided into multiple chunks (segments). This is because the size of one file in DASH technology is generally larger than the size of a segment in ICN. According to Figure 1, file Q3#k is divided into N segments, Q3#k / 1 to Q3#k / N (N is an integer equal to or greater than 2). The value "n" of Q3#k / n (n is an integer between 1 and N) indicates the position of the segment in the entire data. In ICN, a file is downloaded by sequentially acquiring segments with lower segment numbers. Therefore, in the following explanation, the larger the value of n, the longer it takes to acquire that segment. The same applies to other files.
[0008] In a content distribution system using a typical DASH technology, the only device between a client device and a server device is a device that transfers IP packets. The client device notifies the server device of the requested file and obtains the file from the server device. In other words, the client device obtains files for each time interval required to play a single piece of content from the same device. On the other hand, in an ICN, as shown in Figure 2, a cache device 2 that can cache segments exists between a client device 1 and a server device 3.
[0009] For example, suppose that encoded data of the three qualities shown in Figure 1 is stored in server device 3, and that all segments of all high-quality files from the first timing in the middle of the content to the end are cached in cache device 2. Furthermore, suppose that the throughput of section #1 between client device 1 and cache device 2 is sufficient for transmitting high-quality files, but the throughput of section #2 between cache device 2 and server device 3 is only capable of transmitting low-quality files. In this case, an appropriate method for acquiring content is to request segments of low-quality files up to the first timing, and then request segments of high-quality files from the first timing onwards. In this way, in order for client device 1 to appropriately select the quality of a file, it needs to be aware of the cache status of cache device 2.
[0010] The present disclosure provides a technique for estimating the cache status in a cache device. [Means for solving the problem]
[0011] According to one aspect of the present disclosure, there is provided a client device of a content distribution system, the content distribution system including: a server device that stores encoded data of multiple qualities for content to be made public, the encoded data of multiple qualities each being composed of multiple files corresponding to different time sections of the content to be made public, and each of the multiple files being composed of multiple segments; and a cache device that caches the segments, wherein the client device includes: a transmission means that transmits to the content distribution system a request packet requesting a target segment among multiple first segments that constitute an estimated target file for each of the multiple files of the encoded data of the multiple qualities of a first content to be acquired; a determination means that determines whether the target segment received in response to the request packet was sent from the server device; and an estimation means that, when the determination means determines that a predetermined number of the target segments received in succession were not sent from the server device, estimates that the estimated target file is cached in the cache device. [Effects of the Invention]
[0012] According to the present invention, it is possible to estimate the cache status in a cache device. [Brief explanation of the drawings]
[0013] [Figure 1] FIG. 2 is a diagram showing an example of coded data of one piece of content stored in the server device. [Figure 2] FIG. 1 is a diagram illustrating the configuration of a content distribution system. [Figure 3] FIG. 10 is an explanatory diagram of a method for selecting a file to be estimated. [Figure 4] 1 is a block diagram of a client device, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0014] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the scope of the invention as claimed, and not all combinations of features described in the embodiments are necessarily essential to the invention. Two or more of the features described in the embodiments may be arbitrarily combined. Furthermore, the same reference numerals are used for the same or similar components, and redundant explanations will be omitted.
[0015] Fig. 2 is a schematic diagram of a content distribution system used to explain the embodiments. Note that the content distribution system in each embodiment is based on ICN. For simplicity of illustration, Fig. 2 shows one server device 3, one cache device 2, and one client device 1, but the content distribution system may include multiple server devices, multiple cache devices, and multiple client devices.
[0016] The server device 3 stores encoded data of multiple qualities for each piece of content to be made public. Fig. 1 shows an example of encoded data of three different qualities for the same content stored in the server device 3. Since Fig. 1 has already been explained, it will not be repeated here.
[0017] First Embodiment In this embodiment, before acquiring a piece of content, the client device 1 estimates and determines whether each of the files of the content is cached in the cache device 2. For example, if Y (Y is an integer equal to or greater than 2) pieces of encoded data of different qualities are prepared for one piece of content, and each piece of encoded data is composed of Z (Z is an integer equal to or greater than 2) files, the client device 1 estimates whether each of the Y x Z files is cached in the cache device 2. The reason for estimating whether a file is cached in the cache device 2 is that all segments of the file are required to play the file. In other words, even if the client device 1 acquires Q2#k / 1 and Q2#k / 2 of Q2#k / 1 to Q2#k / N that constitute the medium-quality file Q2#k in FIG. 1 and Q3#k / 3 to Q3#k / N that constitute the low-quality file, the file cannot be played back.
[0018] Since the method for estimating whether a file is cached in the cache device 2 is the same for each file, the following description will be given assuming that the file to be estimated (estimation target file) is the first file. It is assumed that the first file is composed of N first segments (N is an integer equal to or greater than 2). To estimate whether the first file is cached in the cache device 2, the client device 1 transmits M request packets requesting M first segments (hereinafter referred to as target segments) among the N first segments of the first file. The M target segments are selected, for example, randomly from the N first segments. Alternatively, the M target segments are selected so that they are not temporally consecutive. The request packet is referred to as an interest packet in CCN, for example. The value of M can be 1 to N, but in this embodiment, M is set to a value equal to or greater than 2, as described below. Furthermore, as described below, the value of M can be equal to or less than 3% of N, rounded up to the nearest integer.
[0019] In response to transmitting M request packets requesting M different target segments, the client device 1 receives the M different target segments in sequence. When the client device 1 receives one target segment, it determines whether the received target segment was transmitted from the server device 1. The method of determination will be described later.
[0020] When the client device 1 determines that the received target segment was sent from the server device 1, the client device 1 presumes that the first file is not cached in the cache device 2, more specifically, that all of the first segments of the first file are not cached in the cache device 2. When the client device 1 determines that all of the M target segments of the first file were not sent from the server device 1, the client device 1 presumes that the first file is cached in the cache device 2, more specifically, that all of the first segments of the first file are cached in the cache device 2. Note that, if the client device 1 receives a target segment determined to have been sent from the server device 1 in response to a request packet that it has already sent before sending all M request packets, the client device 1 may be configured not to send the unsent request packet. Furthermore, the number of request packets to be sent may be more than M. Even if the number of request packets to be sent is more than M, the client device 1 presumes that the first file is cached in the cache device 2 if it determines that all of the M target segments it initially receives were not sent from the server device 1.
[0021] Next, a method for determining whether a received target segment was sent from the server device 1 will be described. The client device 1 measures the round trip delay (RTT) between the client device 1 and the server device 1 in advance using any method and saves it as a reference RTT. When the client device 1 receives a target segment, it determines the RTT of the target segment. The RTT is the period from the time a request packet is sent to the time the target segment requested in the request packet is received. The client device 1 sets a threshold based on the reference RTT, and if the RTT of the received target segment is greater than the threshold, it determines that the received target segment was sent from the server device 1. The threshold can be set by subtracting a margin from the reference RTT.
[0022] In addition, in ICN, a packet carrying a segment may contain source information indicating the source of the packet. When the source information is contained in a packet carrying a received target segment, the client device 1 can determine whether the target segment was sent from the server device 1 based on the source information.
[0023] Generally, segments of a file are cached in the cache device 2 because another client device 1 has requested all segments of the file from the content distribution system in order to play the file. Therefore, it is generally unlikely that only some segments of a file will be cached in the cache device 2. Therefore, in this embodiment, if it is determined that all M target segments of a first file received in response to M request packets were not sent from the server device 1, the client device 1 presumes that the first file is cached in the cache device 2.
[0024] Experimental results show that when M=1, the probability of erroneously determining that the first file is cached in the cache device 2 increases even when not all segments of the first file are cached in the cache device 2. For example, assume that the cache device 2 does not cache any segments of the low-quality file Q3#k, and the client device 1 transmits a request packet requesting only Q3#k / 1 to determine whether the low-quality file Q3#k is cached in the cache device 2. Assume that shortly before the client device 1 transmits this request packet, another client device 1 transmits request packets requesting Q3#k / 1 to Q3#k / N in sequence. In this case, if the request packet from the client device 1 arrives immediately after the cache device 2 distributes and caches only Q3#k / 1 to the other client device 1, the client device 1 will erroneously determine that all segments of the low-quality file Q3#k are cached in the cache device 2, even though only one segment of the low-quality file Q3#k is cached.
[0025] Experimental results show that setting M to 2 or greater can reduce the probability of erroneous determination. Furthermore, if M is set too large, the number of request packets sent for estimation increases, resulting in inefficiency. Experimental results also show that even if M is set to more than about 3% of N, the probability of erroneous determination does not change significantly. Therefore, M can be set to a value equal to or less than 3% of N rounded up, allowing for efficient estimation of the cache status of the cache device 2.
[0026] Second Embodiment Next, the second embodiment will be described, focusing on the differences from the first embodiment. In the following description, it is assumed that Y pieces of coded data of different qualities, quality #1 to quality #Y (Y is an integer equal to or greater than 2), are prepared for one content, and a file for time section #k of quality #y (y is an integer from 1 to Y) is represented as file Qy#k. It is also assumed that the smaller the value of y, the higher the quality.
[0027] In the first embodiment, the client device 1 individually estimated whether or not each of the Y×Z files is cached in the cache device 2. In this embodiment, while playing content, the client device 1 estimates whether or not some estimation target files among the Y files in the time section next to the time section currently being played are cached in the cache device 2.
[0028] As shown in FIG. 3, it is assumed that the client device 1 is playing a file Q3#k in time interval #k. In this case, while acquiring and playing the file Q3#k in time interval #k, the client device 1 estimates whether or not an estimation target file among the Y files in time interval #(k+1) is cached in the cache device 2. The estimation target file is selected based on the quality of the currently played file Q3#k. In this embodiment, the estimation targets are quality #3, which is the same as the currently played file, quality #2, which is one level higher in quality than the currently played file, and quality #4, which is one level lower in quality than the currently played file. In other words, in this example, the estimation target file has a quality within the range of quality #2 to quality #4.
[0029] More generally, based on the currently played quality #y, files in the range of quality #(y-x1) to quality #(y+x2) (x1 and x2 are integers equal to or greater than 1) for the next time section can be estimated. The values x1 and x2 can be the same or different. If the value of y-x1 of quality #(y-x1) is 0 or less, the maximum quality to be estimated will be quality #1, and if the value of y+x2 of quality #(y+x2) is greater than Z, the minimum quality to be estimated will be quality #Z.
[0030] In this example, the files in the time interval #(k+1) following the currently played time interval #k are targeted for estimation, but the two following time intervals #(k+2) may also be targeted for estimation. More generally, based on the quality #y of the currently played time interval #k, files in the range of quality #(y-x1) to quality #(y+x2) in the time interval #(k+p) a predetermined number p (p is an integer equal to or greater than 1) following may be targeted for estimation.
[0031] In the case of the predetermined number p, it is necessary to determine the quality of time intervals #1 to #p before starting playback, but it is also possible to estimate whether all qualities of time intervals #1 to #p are cached in the cache device 2, or to estimate whether only some qualities are cached in the cache device 2. When estimating only some qualities, the estimated quality does not need to be continuous. Furthermore, when the predetermined number p is 2 or more, it is not necessary to make the estimated quality the same for each time interval.
[0032] Generally, the more frequently quality switches, the more the user's quality of experience deteriorates. Furthermore, the greater the difference in quality before and after the switch, the more the user's quality of experience deteriorates. In this embodiment, files to be estimated as cached or not in future time intervals are narrowed down based on quality #y of the currently played time interval #k. Therefore, the number of request packets sent for estimating cached or not can be reduced. Furthermore, the quality of the file to be estimated as cached or not is set to a predetermined range including quality #y of the currently played file. Therefore, the deterioration of the user's quality of experience can be suppressed.
[0033] Third Embodiment Next, the third embodiment will be described, focusing on the differences from the second embodiment. In the second embodiment, files for which cached or uncached files are estimated for future time intervals are narrowed down based on the quality #y of the currently played time interval #k. Therefore, for example, if the future time interval is time interval #(k+1), a request packet requesting a file segment for time interval #(k+1) is transmitted in time interval #k. This is not a problem in the case of a VOD application in which files for all time intervals of content are stored in advance on the server device 3. However, in the case of live distribution, the file for time interval #(k+1) may not be stored on the server device 3 in time interval #k. Therefore, the method of the second embodiment is not appropriate when the content is live distribution.
[0034] For this reason, in this embodiment, based on the quality #y of the currently played time section #k, the quality (#y-x1) to (#y-1) and the quality (#y+1) to (#y+x2) of the time section #k are used as estimation targets to estimate whether they are cached in the cache device 2. Then, it is estimated that a file of the time section #(k+1) with the same quality as that estimated to be cached in the cache device 2 is cached in the cache device 2. Note that the quality #y of the currently played time section #k is always estimated to be cached in the cache device 2. Note that the quality (#y-x1) to (#y+x2) of the time section #(k-1) may also be used as estimation targets based on the quality #y of the currently played time section #k. Note that if the quality played in the time section #(k-1) is within the quality (#y-x1) to (#y+x2), it is estimated that the quality is cached in the cache device 2 without transmitting a request packet.
[0035] <Configuration diagram of client device 1> FIG. 4 is a configuration diagram of the client device 1 in each of the above-described embodiments. Note that FIG. 4 only shows a configuration related to determining whether a file is cached in the cache device 2. The client device 1 shown in FIG. 4 is configured to be able to select from the first to third embodiments for selecting an estimation target file. In the following description, the mode described in the first embodiment in which all files are estimation target files is referred to as the first mode. Furthermore, the mode described in the second embodiment in which some files in a future time interval are estimated based on the quality of the currently played file is referred to as the second mode. Furthermore, the mode described in the third embodiment in which some files in the current time interval or the immediately previous time interval are estimated based on the quality of the currently played file is referred to as the third mode.
[0036] The mode setting unit 11 sets the operation mode to be used. The operation mode may include at least one of a first mode, a second mode, and a third mode. If all of the first mode to the third mode are possible, the operation mode setting may be based on a user setting and the content to be acquired. For example, if the content to be acquired is live streaming content, the mode setting unit 11 sets the third mode as the operation mode. On the other hand, if the content to be acquired is VOD content, the mode setting unit 11 prompts the user to select either the first mode or the second mode.
[0037] The estimation target file selection unit 12 selects estimation target files according to the operation mode. The request packet generation unit 13 selects at least M target segments for each estimation target file and generates a request packet requesting at least M target segments. The transmission unit 16 transmits the request packet requesting at least M target segments generated by the request packet generation unit 13 to the content distribution system.
[0038] Every time the determination unit 14 receives a target segment as a response to a request packet via the receiving unit 17, it determines whether the target segment has been sent from the server device 1. The determination unit 14 outputs the determination result to the estimation unit 15. If the determination unit 14 determines that all of the M consecutively received target segments have not been sent from the server device 1, the estimation unit 15 determines that the estimation target file is cached in the cache device 2.
[0039] The client device 1 according to the present disclosure can be realized by a computer program that, when executed by one or more processors of a device having one or more processors, causes the device to operate as the client device 1. These computer programs can be stored in a computer-readable storage medium or distributed via a network.
[0040] The invention is not limited to the above-described embodiment, and various modifications and variations are possible within the scope of the gist of the invention.
[0041] The above configuration makes it possible to estimate the cache status of a cache device, which will contribute to Goal 9 of the United Nations' Sustainable Development Goals (SDGs), which is to "Build resilient infrastructure, promote sustainable industrialization, and foster innovation." [Explanation of symbols]
[0042] 16: Transmitter, 14: Determiner, 15: Estimator
Claims
1. A client device of a content distribution system, the content distribution system includes a server device that stores encoded data of a plurality of qualities for content to be released, the encoded data of a plurality of qualities being composed of a plurality of files corresponding to different time sections of the content to be released, and each of the plurality of files being composed of a plurality of segments; and a cache device that caches the segments; The client device a transmitting means for transmitting to the content distribution system a request packet requesting a target segment among a plurality of first segments constituting an estimation target file for each of the plurality of files of the encoded data of the plurality of qualities of the first content to be acquired; a determination means for determining whether the target segment received as a response to the request packet was transmitted from the server device; an estimation means for estimating that the estimated target file is cached in the cache device when the determination means determines that the predetermined number of consecutively received target segments were not transmitted from the server device; A client device comprising:
2. 2. The client device according to claim 1, wherein said determining means determines that said target segment has been transmitted from said server device when a period from transmission of said request packet to reception of said target segment is greater than a threshold value.
3. The client device of claim 2 , wherein the threshold is set based on a round-trip delay between the client device and the server device.
4. The client device according to claim 1, wherein the determination means determines that the target segment was sent from the server device when information indicating the source of the target segment contained in a packet carrying the target segment indicates the server device.
5. The client device according to claim 1 , wherein the predetermined number is equal to or greater than 2 and equal to or less than a predetermined percentage of the number of the plurality of first segments, rounded up to the nearest whole number.
6. The client device according to claim 5 , wherein the predetermined percentage is 3%.
7. The client device according to claim 1 , wherein the transmission means randomly selects the target segment from the plurality of first segments.
8. The client device according to claim 1 , further comprising a selection means for selecting one or more of the files to be estimated from the plurality of files of each of the plurality of qualities of encoded data.
9. The client device according to claim 8 , wherein the selection means selects the plurality of files of the encoded data of the plurality of qualities as the estimation target files before playing back the first content.
10. The client device described in claim 8, wherein the selection means, while playing a first file of the first content, selects as the estimation target file a file of a second time interval that is a predetermined number of times later than a first time interval that is the time interval of the first file and that has a predetermined range of quality that includes a first quality that is the quality of the first file.
11. The client device according to claim 8, wherein the selection means, while playing a first file of the first content, selects as the estimation target file a file that is different from the first file and that is a file of a first time period that is the time period of the first file and that is of a predetermined range of quality that includes a first quality that is the quality of the first file.
12. The client device according to claim 8, wherein the selection means, while playing a first file of the first content, selects as the estimation target file a file from a second time interval that is one time interval before the first time interval that is the time interval of the first file, and that is different from the file played in the second time interval from among files of a predetermined range of quality that includes a first quality that is the quality of the first file.
13. A program, when executed by one or more processors of a device having one or more processors, that causes the device to function as a client device according to any one of claims 1 to 12.
Citation Information
Patent Citations
System and method for enabling network based rate determination for adaptive video streaming
US20160150255A1