Method and system for session-based DASH operation
By employing a pattern addressing scheme in DASH operations, utilizing repeating pattern elements and time/sequence line addressing, the redundancy problem of SBD files is solved, achieving more efficient DASH operations.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- TENCENT AMERICA LLC
- Filing Date
- 2021-01-04
- Publication Date
- 2026-05-19
AI Technical Summary
In existing session-based DASH operations, SBD files are excessively redundant, especially when there are repeated query patterns, resulting in excessively large files and low efficiency.
A pattern addressing scheme is adopted, which references Session-Based Description (SBD) through Media Presentation Description (MPD). Repeating pattern elements are used in SBD to indicate the repetition of timing keyword value sequences of keyword names. Combined with timeline or sequence line addressing, the transmission of redundant information is reduced.
It enables more compact SBD file transfer, saves signal sending and parsing time, and improves the efficiency and flexibility of DASH operations.
Smart Images

Figure CN117376614B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims the benefit of priority to U.S. Patent Application No. 17 / 095,182, filed November 11, 2020, entitled “Pattern ADDRESSING FOR SESSION-BASED DASH OPERATIONS,” which also claims the benefit of priority to U.S. Provisional Application No. 62 / 958,136, filed January 7, 2020, entitled “Pattern ADDRESSING FOR SESSION-BASED DASH OPERATIONS.” The entire disclosure of the earlier applications is incorporated herein by reference. Technical Field
[0003] This application relates to the field of computer technology, and more particularly to a method and system for session-based Dynamic Adaptive Streaming (DASH) operations via Hypertext Transfer Protocol (HTTP). Background Technology
[0004] The background description provided herein is intended to provide a general context for this disclosure. The work of the currently attributed inventors, including the work described in this background section and aspects that may not otherwise be considered prior art at the time of filing, is neither expressly acknowledged nor implied as prior art to this disclosure.
[0005] The Moving Picture Experts Group (MPEG) provides a standard for streaming multimedia content over IP networks through Dynamic Adaptive Streaming (DASH) of the Hypertext Transfer Protocol. In the DASH standard, a Media Presentation Description (MPD) is used to provide information to DASH clients to adaptively stream media content by downloading media segments from a DASH server. However, the MPD is generic for all DASH clients. Therefore, to make the MPD file specific to a DASH client session, MPEG developed a scheme to support session-based DASH operation. In session-based DASH operation, the DASH client can receive a side file (called a Session-Based Description (SBD) file) that provides information to the DASH client to customize the MPD file for each session and, possibly, each client. However, in existing session-based DASH operation, using only a simple timeline addressing scheme, excessive redundancy in the SBD file provided to the DASH client can occur when there are repeated query patterns.
[0006] Therefore, the problem that needs to be addressed in this field is how to provide a method for session-based DASH operations to generate more compactly presented SBD files. Summary of the Invention
[0007] This disclosure provides a method for session-based Dynamic Adaptive Streaming over HTTP (DASH) operation in a media streaming system. The method may include sending a Media Presentation Description (MPD) during a media access session. The MPD references a Session-Based Description (SBD) and indicates a keyword name used to describe the media presentation of media content divided into a sequence of segments. The SBD referenced by the MPD may be sent. The SBD includes a first repeat pattern element that includes a first timing keyword value sequence of the keyword name. The first repeat pattern element indicates that the first timing keyword value sequence of the keyword name repeats along a timeline or sequence line. A request for a segment of the segment sequence may be received from a DASH client. The request includes the keyword name and a first keyword value of the keyword name, and the first repeat pattern element in the SBD indicates the first keyword value of the keyword name, the first keyword value corresponding to the timing or segment number of the current segment of the segment sequence. In response to a received request for a segment of the segment sequence, the requested segment of the segment sequence may be sent to the DASH client.
[0008] In the example, the first repeat pattern element includes a repeat attribute that indicates the number of times the first timed keyword value sequence of the keyword name is repeated. In the example, when the repeat attribute value is -1, the first timed keyword value sequence of the keyword name is repeated until the media access session ends. In the example, when the repeat attribute value is 1, the first timed keyword value sequence of the keyword name is not repeated.
[0009] In the example, the first repeating pattern element includes a second repeating pattern element in a nested manner. The second repeating pattern element includes a second timed keyword value sequence of the keyword name. The second timed keyword value sequence of the keyword name is repeated as indicated by the second repeating pattern element to form a third timed keyword value sequence of the keyword name. The third timed keyword value sequence of the keyword name is a part of the first timed keyword value sequence of the keyword name.
[0010] In the example, the SBD includes a fourth timing keyword value sequence for the keyword name, in addition to the first repeating pattern element. In the example, the first repeating pattern element includes a start time attribute that indicates the time at which the first timing keyword value sequence for the keyword name in the first repeating pattern element begins to be applied. In the example, this time is represented by an offset relative to a reference timing.
[0011] In one implementation, the first timing keyword value sequence of the keyword name is repeated along a sequence line, and the first repeating pattern element includes a start count attribute, which indicates the start segment number at which the timing keyword value sequence of the keyword name in the first repeating pattern element begins to be applied. In another implementation, the start segment number is a segment number relative to the start time indicated by the SBD start time attribute of the SBD.
[0012] This disclosure provides a system for session-based DASH operation. The device may include circuitry configured to transmit a Media Presentation Description (MPD) during a media access session. The MPD references a Session-Based Description (SBD) and indicates a keyword name used to describe the media presentation of media content divided into a sequence of segments. The SBD referenced by the MPD can be transmitted. The SBD includes a first repeat pattern element that includes a first timing keyword value sequence of the keyword name. The first repeat pattern element indicates that the first timing keyword value sequence of the keyword name repeats along a timeline or sequence line. A request for a segment of the segment sequence can be received from a DASH client. The request includes the keyword name and a first keyword value of the keyword name, and the first repeat pattern element in the SBD indicates the first keyword value of the keyword name, the first keyword value corresponding to the timing or segment number of the current segment of the segment sequence. In response to a received request for a segment of the segment sequence, the requested segment of the segment sequence can be transmitted to the DASH client.
[0013] This disclosure also provides a non-transitory computer-readable medium for storing instructions that, when executed by a computer to receive media data, cause the computer to perform session-based DASH operations.
[0014] This disclosure also provides a system for session-based DASH operations. The system includes: a first sending module configured to send a Media Presentation Description (MPD) during a media access session, the MPD referencing a session-based Description (SBD) and indicating a keyword name, and used to describe the media presentation of media content divided into a sequence of segments; a second sending module configured to send the SBD referenced by the MPD, the SBD including a first repeat pattern element, the first repeat pattern element including a first timing keyword value sequence of the keyword name, the first repeat pattern element indicating that the first timing keyword value sequence of the keyword name repeats along a timeline or sequence line; a receiving module configured to receive from a DASH client a request for a segment of the segment sequence, the request including the keyword name and a first keyword value of the keyword name, and the first repeat pattern element in the SBD indicating the first keyword value of the keyword name, the first keyword value corresponding to a timing or segment number of the current segment of the segment sequence; and a third sending module configured to send the requested segment of the segment sequence to the DASH client in response to the received request for the segment of the segment sequence.
[0015] This disclosure also provides a computer device including a processor and a memory. The memory is used to store program code and transfer the program code to the processor; the processor is used to execute the aforementioned methods according to instructions in the program code.
[0016] According to the technical solution provided in this application, firstly, a Media Presentation Description (MPD) is sent during a media access session. The MPD references a Session-Based Description (SBD) and indicates a keyword name, describing the media presentation of media content divided into a sequence of segments. Next, the SBD referenced by the MPD is sent. The SBD includes a first repeat pattern element, which includes a first timing keyword value sequence of the keyword name. The first repeat pattern element indicates that the first timing keyword value sequence of the keyword name repeats along a timeline or sequence line. Then, a request for a segment of the segment sequence is received from a DASH client. The request includes the keyword name and a first keyword value of the keyword name, and the first repeat pattern element in the SBD indicates the first keyword value of the keyword name. The first keyword value corresponds to the timing or segment number of the current segment of the segment sequence. Finally, in response to the received request for the segment of the segment sequence, the requested segment of the segment sequence is sent to the DASH client. Therefore, in this application, by adopting a mode addressing scheme, a more compact SBD file can be obtained. The mode addressing scheme includes mode-based timeline addressing and mode-based sequenceline addressing. Furthermore, mode addressing can be combined with conventional addressing schemes, making the application more flexible. Attached Figure Description
[0017] Other features, properties, and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings, in which:
[0018] Figure 1 An exemplary system for Dynamic Adaptive Streaming (DASH) via Hypertext Transfer Protocol according to one embodiment of the present disclosure is shown;
[0019] Figure 2 An exemplary DASH system according to another embodiment of this disclosure is shown;
[0020] Figure 3 A flowchart outlining an example process for session-based DASH operation according to some implementations is shown;
[0021] Figure 4 This is a schematic diagram of a computer system according to an implementation method. Detailed Implementation
[0022] I. Dynamic Adaptive Streaming (DASH) and Media Presentation Description (MPD) via Hypertext Transfer Protocol
[0023] Dynamic Adaptive Streaming over Hypertext Transfer Protocol (DASH) is an adaptive bitrate streaming technology that enables the streaming of media content using Hypertext Transfer Protocol (HTTP) infrastructure such as web servers, Content Delivery Networks (CDNs), various proxies, and caches. DASH supports both on-demand and real-time streaming from DASH servers to DASH clients and allows DASH clients to control the streaming session, freeing DASH servers from the additional load of managing streaming adaptations on a large scale. DASH also allows DASH clients to select which DASH servers to stream from, thus further achieving network load balancing to protect the interests of DASH clients. DASH dynamically switches between different media tracks, for example, by changing the bitrate to adapt to network conditions.
[0024] In DASH, Media Presentation Description (MPD) files provide DASH clients with information to adaptively stream media content by downloading media segments from the DASH server. A hierarchical data model can be used to define MPD files. MPD files can be segmented and delivered separately to reduce session initiation latency. MPD files can also be updated during a streaming session. In some examples, MPD files support expressions for content accessibility features, ratings, and camera views. DASH also supports the delivery of multi-view and scalable encoded content.
[0025] An MPD file can contain one or more time periods. Each of one or more time periods can be defined by a time period element in the MPD file. An MPD file can include an `availableStartTime` attribute for the MPD and a start attribute for each time period. For a dynamic type of media presentation (e.g., for live service), the sum of the time period's start attribute, the MPD's `availableStartTime` attribute, and the duration of the media segment can indicate the available time of the time period in Coordinated Universal Time (UTC) format, specifically the first media segment represented in each time period. For a static type of media presentation (e.g., for on-demand service), the start attribute of the first time period can be 0. For any other time period, the start attribute can specify the time offset of the corresponding time period's start time relative to the start time of the first time period. Each time period can extend to the beginning of the next time period, or, in the case of the last time period, to the end of the media presentation. The time period start time can be precise and reflects the actual timing resulting from playing all previous time periods of media.
[0026] Each time slot may contain one or more adapter sets, and each adapter set may contain one or more representations of the same media content. A representation may be one of several alternative encoded versions of audio or video data. Representations may vary depending on encoding types such as bitrate, resolution, and / or the codecs for video data and bitrate, and / or the codecs for audio data. The term "representation" can be used to refer to a segment of encoded audio or video data that corresponds to a specific time slot of multimedia content and is encoded in a specific manner.
[0027] Adapter sets for a specific time period can be assigned to groups indicated by group attributes in the MPD file. Adapter sets within the same group are generally considered alternatives to each other. For example, each adapter set of video data for a specific time period can be assigned to the same group, allowing any adapter set to be selected for decoding to display the multimedia content of the corresponding time period. In some examples, the media content within a time period can be represented by one adapter set from group 0 (if present) or a combination of at most one adapter set from each non-zero group. Timing data for each representation of a time period can be represented relative to the start time of that time period.
[0028] A representation may include one or more segments. Each representation may include an initialization segment, or each segment of a representation may be self-initialized. When present, the initialization segment may contain initialization information for accessing the representation. In some cases, the initialization segment does not contain media data. Segments may be uniquely referenced by identifiers such as Uniform Resource Locators (URLs), Uniform Resource Names (URNs), or Uniform Resource Identifiers (URIs). The MPD file may provide an identifier for each segment. In some examples, the MPD file may also provide byte ranges as a range attribute, which may correspond to the data of segments within the file that can be accessed via URLs, URNs, or URIs.
[0029] Each representation may also include one or more media components, where each media component may correspond to an encoded version of a single media type, such as audio, video, or timed text (e.g., for closed captions). Media components may span the boundaries of consecutive media segments within a representation, which are temporally continuous.
[0030] In some implementations, the DASH client can access and download MPD files from the DASH server. That is, the DASH client can retrieve MPD files for use when initiating a live session. Based on the MPD files, and for each selected representation, the DASH client can make several decisions, including: determining what the latest segment is available on the server, determining the available start time for the next segment and possible future segments, determining when to start playing the segment and from which timeline within the segment, and determining when to obtain / retrieve a new MPD file. Once the service is broadcast, the client can maintain a monitoring mechanism to detect the discrepancy between the live service and its own broadcast, which needs to be detected and compensated for.
[0031] II. Session-based DASH Operations and Session-based Description (SBD)
[0032] MPD files can be universal for all DASH clients. To make MPD files specific to a DASH client session, the Moving Picture Experts Group (MPEG) developed a scheme to support session-based DASH operation. In session-based DASH operation, the DASH client can receive a side file (called a Session-Based Description (SBD) file) that provides the DASH client with information to customize the MPD file for each session and, possibly, each client.
[0033] Figure 1 A session-based DASH system (100) according to an embodiment of the present disclosure is illustrated. In the session-based DASH system (100), an MPD file is sent from a DASH server (101) (e.g., a content server) to a DASH client (102). The DASH client (102) can receive media segments from the DASH server (101) based on the MPD file. The DASH client (102) can send a request to the DASH server (101) to update the MPD file. Additionally, the DASH client (102) can receive SBD files (also referred to as SBD documents) from the DASH server (101) or a third party (e.g., a session controller).
[0034] In various examples, multiple DASH servers can send MPD files and media clips. MPD files and media clips can be sent from different DASH servers to the DASH client (102). The DASH server receiving the request from the DASH client (102) can be different from the DASH server that sent the media clip.
[0035] According to aspects of this disclosure, an SBD file may include multiple time ranges and corresponding keyword-value pairs (or name-value pairs) as well as additional metadata. For example, an SBD file can be referenced in an MPD file via, for example, a URL. An SBD file can be used to customize an MPD file received by a DASH client (102) for a session specific to that DASH client (102). For example, an SBD file may allow session-specific parameters to be added to a fragment URL without generating a unique MPD for each session.
[0036] Figure 2 Another session-based DASH system (200) according to an embodiment of the present disclosure is shown. In the session-based DASH system (200), multimedia content is prepared and generated by a content generation device (201) (e.g., a smartphone), which may include an audio source (e.g., a microphone) and a video source (e.g., a video camera). The multimedia content may be stored by the content generation device (201) or sent to a content server (202) capable of storing various multimedia content. The multimedia content may be described by an MPD file. The MPD file may be stored and updated by the content server (202) and accessed by a client device including a DASH access client (203) to retrieve media segments. The content server (202) may receive requests for one or more media segments of the multimedia content from a client device, such as a DASH access client (203).
[0037] To obtain session-specific information, the DASH access client (203) can send a request to the SBD client (204) (e.g., a session client) for access to an SBD file. The SBD file may include multiple time ranges for the current session and corresponding keyword-value pairs. For example, the DASH access client (203) can send a keyword name (e.g., a parameter name) and a time to the SBD client (204). In response, the SBD client 204 can return a value corresponding to the keyword name and time to the DASH access client (203). The DASH access client (203) can include this value in the query portion of the fragment URL in the request. The request can be sent to the content server (202) to request the corresponding media fragment. For example, the fragment request can be an HTTP GET request or a partial GET request.
[0038] The SBD client (204) can receive multiple SBD files from different session controllers such as session controller (205) and session controller (206).
[0039] According to aspects of this disclosure, in various examples, any or all features of the content server (202) (e.g., a DASH server) may be implemented on one or more devices of a content delivery network (CDN), such as routers, bridges, proxy devices, switches, or other devices. In examples, the content server (202) may include a request processing unit configured to receive network requests from client devices (e.g., a DASH access client (203)). For example, the request processing unit may be configured to receive HTTP GET requests or partial GET requests and, in response to the request, provide data for multimedia content. The request may specify a fragment using a fragment's URL. In some examples, the request may also specify one or more byte ranges of a fragment, thus including partial GET requests. The request processing unit may also be configured to serve HTTP HEAD requests to provide header data for the fragment.
[0040] In various examples, the content generation device (201) and the content server (202) can be coupled via a wireless network or a wired network, or can be directly communicatively coupled. The content generation device (201) and the content server (202) can be included in the same device. The content server (202) and session controllers (205) to (206) can be included in the same device. The content server (202) and the DASH access client (203) can be coupled via a wireless network or a wired network. The SBD client (204) and the session controllers (205) to (206) can be coupled via a wireless network or a wired network, or can be directly communicatively coupled.
[0041] In some implementations, the DASH access client (203) and the SBD client (204) may be included in the same device. The device can be used as a DASH client that performs the functions of both the DASH access client (203) and the SBD client (204).
[0042] III. Sessions and Session Parameters
[0043] In various implementations, the SBD mechanism allows session-specific elements to be added to the fragment URL without generating a unique MPD for each session. Session parameter strings in the SBD relating to a specific time range on the timeline can be parsed by the SBD client (204) and converted into parameters to be added to an HTTP fragment request issued by the DASH access client (203). The SBD can be referenced in the MPD via its URL.
[0044] As an example, the information carried in the SBD can be conceptually presented in Table 1.
[0045] Table 1
[0046] Start time p1 p2 00:00:00 foo 42 00:00:42 bar 420 00:04:20 null value null value
[0047] In Table 1, each row corresponds to a time range, and each column corresponds to a named parameter. The expected parameters "p1" and "p2" carry information from the query portion of the fragment request URL. For the time range 00:00:00-00:00:42, "p1" is "foo" and "p2" is 42. For the time range 00:00:42-00:04:20, "p1" is "bar" and "p2" is 420. In the case of two-second fragments, the first 21 fragments will include "p1=foo&p2=42" as part of their URL query parameters, and the next 109 fragments will include "p1=bar&p2=420" as part of the fragment URL in the HTTP GET request.
[0048] IV. Timeline Addressing and Sequence Line Addressing
[0049] In some implementations, an SBD document may conceptually include one or more tables, each associated with an identifier (ID). Each table may contain key-value pair assignments for different time intervals, as shown in Table 2.
[0050] Table 2
[0051] order <![CDATA[k1]]> <![CDATA[k2]]> … <![CDATA[k n ]]> <![CDATA[t1]]> <![CDATA[v 1,1 ]]> <![CDATA[v 1,2 ]]> … <![CDATA[v 1,n ]]> <![CDATA[t2]]> … <![CDATA[t n ]]>
[0052] In Table 2, ti indicates a moment in the media timeline, and (k j v i,j ) is a key-value pair j for time ti.
[0053] Alternatively, an SBD document may conceptually include one or more tables. Each table may contain key-value pair information for the order of fragments, as shown in Table 3.
[0054] Table 3
[0055] order <![CDATA[k1]]> <![CDATA[k2]]> … <![CDATA[k n ]]> <![CDATA[n1]]> <![CDATA[v 1,1 ]]> <![CDATA[v 1,2 ]]> … <![CDATA[v 1,n ]]> <![CDATA[n2]]> … <![CDATA[n m ]]>
[0056] In Table 3, n i It is an indicator fragment n i The fragment index or fragment number, and (k j v i,j ) is for fragment n i To fragment n i+1 All fragments (but excluding n) i+1 The key-value pair j of the fragment.
[0057] V. MPD signaling for SBD
[0058] In some examples, one or more SBD descriptors can be defined to signal session-based information from the DASH inventory. In these examples, the SBD descriptor may appear once or more at one or more levels of the MPD hierarchical data model.
[0059] In the example, the SBD descriptor can be a basic property descriptor of the MPD represented by EssentialProperty. For example, an SBD descriptor can have the URN "urn:mpeg:dash:sbd:2020" as its @schemeIdUri and can contain one or more KeyList elements. As an example, Table 4 shows the MPD EssentialProperty descriptor, which includes elements and properties for signaling the SBD.
[0060] Table 4
[0061]
[0062]
[0063] VI. Pattern-based addressing for session-based DASH operations
[0064] VI.1 Simple Timeline Addressing Scheme
[0065] In some examples, a simple timeline addressing scheme is used for session-based DASH operations to customize the MPD for each session and each client. In such cases, the SBD file may contain elements (called key-value timeline elements) that describe the timing or sequence of segments, as well as corresponding key-value pairs (e.g., similar to Table 2 or Table 3) for each entry in the SBD table.
[0066] Table 5 shows an example of a keyword-valued timeline element for implementing simple SBD timeline addressing. The keyword-valued timeline element can be part of an SBD file in Extensible Markup Language (XML) format.
[0067] Table 5
[0068]
[0069]
[0070] In Table 5, the KeyValueTimeline element, represented by KeyValueTimeline, includes a timeline element (rows 2 through 6). Each timeline element includes three value elements (rows 3 through 5), represented by V. Each of the three value elements includes a duration attribute represented by d and a key value attribute represented by v. Additionally, the first value element also includes a start time attribute represented by s. For example, assuming a 1-second timescale, the KeyValueTimeline element begins application at a 0-time offset relative to a reference timing (e.g., the start time of the SBD in Table 5 that includes the KeyValueTimeline element, or the start time of a period containing a reference to the SBD in Table 5). From rows 3 to 5, sequences of the three key values are applied to three corresponding consecutive durations of 1 second, 3 seconds, and 1 second, respectively.
[0071] If a repeating pattern exists in the corresponding key-value pair table, the pattern can be repeated using a simple timeline addressing scheme. For example, if the key-value pairs in Table 5 are repeated three times, the corresponding SBD file will be as shown in Table 6. The key-value sequence in rows 3-5 is repeated twice in rows 6-8 and 9-11. The repetition of the pattern causes the SBD file to grow proportionally to the number of repetitions.
[0072] Table 6
[0073]
[0074]
[0075] VI.2 Pattern-based temporal addressing and pattern-based sequential addressing
[0076] Because the query pattern can be repeated in some applications, this disclosure provides a pattern-based addressing scheme. By employing a pattern-based addressing scheme, a more compact SBD representation can be achieved, saving bits used for signaling the SBD and time for parsing it. The savings in bits and time are proportional to the number of pattern repetitions.
[0077] In an implementation, elements can be defined for signaling repeating patterns from the timing keyword value sequence in Table 6. Such elements can be referred to as repeating pattern elements or pattern elements. Table 7 shows example keyword value timeline elements in XML for timeline addressing using pattern elements.
[0078] Table 7
[0079]
[0080] As shown in Table 7, rows 3 through 7 contain repeating pattern elements represented by P. As a result of using the P element, the repeating pattern in Table 6 is signaled using two additional lines in rows 3 and 7, instead of repeating the pattern using the other 6 lines. Additionally, the P element includes a repeating attribute represented by r, indicating the number of times the timing keyword value sequence (rows 4 through 6) within the P element is repeated.
[0081] Table 8 shows example keyword values for the timeline element in XML using pattern elements for sequence line addressing.
[0082] Table 8
[0083]
[0084] As shown in Table 8, the sequence line elements in the keyword value timeline elements include P elements. The P elements, located in rows 4 through 6, include three sequence line value elements represented by O. Each O element includes a keyword value attribute represented by v. Additionally, the P element may include a start segment number attribute represented by c, indicating a time offset relative to a reference timing. For example, the reference timing could be the start time of the SBD (Sequence Boundary Divided) in Table 8 that includes the keyword value timeline elements, or the start time of a segment containing a reference to the SBD in Table 8. An attribute c with a value of 5 can indicate that the first four segments relative to the reference timing can be skipped. The keyword values in the P elements are applied starting from the fifth segment.
[0085] VI.3 Time-line addressing using mode addressing
[0086] Table 9 shows a semantic table of example timeline elements employing pattern addressing according to some embodiments of this disclosure.
[0087] Table 9
[0088]
[0089]
[0090]
[0091] As shown in Table 9, mode addressing represented by the P element defined in rows 9 and 16 can be used for timeline addressing and sequence addressing represented by the timeline element in row 7 and the sequence line element in row 14.
[0092] Furthermore, mode addressing can be combined with regular addressing. For example, the timeline element at line 7 can include both V elements (regular addressing) and P elements (mode addressing). The P element defined at line 9 can contain both V and P elements. The sequence line element at line 14 can include both O elements (regular addressing) and P elements (mode addressing). The P element defined at line 16 can contain both O and P elements.
[0093] In addition, pattern addressing can be used to signal pattern repetition indefinitely (i.e., until the end of the session). For example, as defined in lines 13 and 21, the repeat attribute r can have a predefined value (e.g., -1) to indicate that the pattern is repeated until the end of the media access session.
[0094] Pattern addressing can also be used in a nested manner and combined with regular addressing at any nesting level. As indicated in lines 11 and 18, a P element may include another P element to indicate a repetition of a nested pattern.
[0095] Similar to regular timeline addressing and sequence line addressing, mode addressing can have time or count offsets by using a start time attribute s or a start segment number c. Mode addressing in timeline addressing can be a time offset utilizing attribute s. Mode addressing in sequence line addressing can be a time (using attribute s) offset or a count (using attribute c) offset.
[0096] While the elements or attributes in Tables 5 through 9 are used as examples to illustrate the inventive concept, this disclosure is not limited to these examples. For instance, in various embodiments, the elements and attributes within the repeating element P used to describe the sequence of timing keyword values in a timeline or sequence line can take various forms that may be similar to or dissimilar to those provided in Tables 5 through 9. For example, keyword values may be associated with the start time series of multiple time ranges, rather than with the duration series shown in Table 7.
[0097] Additionally, repeat pattern elements can be defined as attributes included within timeline or sequence line elements, rather than as elements in an XML file. Alternatively, SBD keyword value timeline elements can be defined as objects instead of elements. Therefore, the elements and attributes in Table 9 can be applied to parameter sets suitable for object formats. For example, repeat pattern elements can be converted into loop parameters that control the repetition of a sequence of timed keyword values.
[0098] VII. Example procedure for session-based DASH operations
[0099] Figure 3A flowchart outlining a session-based DASH operation process (300) according to some embodiments of this disclosure is shown. In various embodiments, the process (300) is executed by a processing circuitry, such as a processing circuitry in a DASH client (102). In some embodiments, the process (300) is implemented as software instructions, so that the processing circuitry executes the process (300) when the software instructions are executed. The process (300) begins at (S301) and proceeds to (S310).
[0100] At (S310), an MPD can be received, for example, from a media content server during a media access session. The MPD can reference the SBD and indicate keyword names. The MPD can describe the media presentation of media content divided into a sequence of segments.
[0101] At (S320), the SBD referenced by the MPD can be received, for example, from the session controller. The SBD may include a first repeat pattern element, which includes a first timed key value sequence of the key name. The first repeat pattern element indicates that the first timed key value sequence of the key name repeats along a timeline or sequence line.
[0102] At (S330), the first keyword value of the keyword name corresponding to the timing or segment number of the current segment of the segment sequence can be determined based on the first repeating pattern element in the SBD.
[0103] At (S340), a request for the current segment is sent to the media content server. This request may include a pair of keyword names and a first keyword value. For example, the request may include a URL, where the query portion of the URL includes the keyword name and the first keyword value. The process may proceed to (S399) and terminate there.
[0104] VIII. Computer Systems
[0105] The technologies and components described in this article (e.g., in...) Figure 1 and Figure 2 The components, functions, and implementations can be realized through circuit systems (e.g., integrated circuits, processors, etc.) or a combination of software and hardware. In some examples, the function of a component can be implemented through instructions stored in a non-transitory computer-readable medium.
[0106] The above-described technology can be implemented as computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, Figure 4 A computer system (400) suitable for implementing certain embodiments of the disclosed subject matter is shown.
[0107] Computer software can be coded using any suitable machine code or computer language, which can be assembled, compiled, linked, or similar mechanisms to create code that includes instructions that can be executed directly by one or more computer central processing units (CPUs), graphics processing units (GPUs), etc., or through interpretation, microcode execution, etc.
[0108] The instructions can be executed on various types of computers or their components, including, for example, personal computers, tablets, servers, smartphones, gaming devices, Internet of Things devices, etc.
[0109] Computer system (400) Figure 4 The components shown are exemplary in nature and are not intended to imply any limitation on the scope of use or functionality of computer software implementing embodiments of this disclosure. The configuration of the components should also not be construed as having any dependency or requirement relating to any one or a combination of components shown in the exemplary embodiments of the computer system (400).
[0110] The computer system (400) may include certain human-machine interface input devices. Such human-machine interface input devices may respond to input by one or more human users via, for example, tactile input (e.g., keystrokes, swipes, data glove movements), audio input (e.g., voice, clapping), visual input (e.g., gestures), and olfactory input (not depicted). The human-machine interface devices may also be used to capture certain media that are not necessarily directly related to conscious human input, such as audio (e.g., speech, music, ambient sounds), images (e.g., scanned images, photographic images obtained from still image cameras), and video (e.g., two-dimensional video, three-dimensional video including stereoscopic video).
[0111] The input human-machine interface device may include one or more of the following (only one of each is depicted): keyboard (401), mouse (402), trackpad (403), touch screen (410), data glove (not shown), joystick (405), microphone (406), scanner (407), and camera (408).
[0112] The computer system (400) may also include certain human-machine interface output devices. Such human-machine interface output devices may stimulate the senses of one or more human users through, for example, tactile output, sound, light, and smell / taste. Such human-machine interface output devices may include tactile output devices (e.g., tactile feedback performed via a touchscreen (410), data gloves (not shown), or joystick (404), but tactile feedback devices that are not input devices may also exist), audio output devices (e.g., speakers (409), headphones (not depicted)), visual output devices (e.g., screens (410) including CRT screens, LCD screens, plasma screens, OLED screens, each screen may or may not have touchscreen input capability, each screen may or may not have tactile feedback capability, some screens may be able to output two-dimensional visual output or output more than three dimensions in a manner such as stereoscopic output); virtual reality glasses (not depicted); holographic displays and smoke canisters (not depicted)); and printers (not depicted). These visual output devices (e.g., screens (410)) may be connected to the system bus (448) via a graphics adapter (450).
[0113] The computer system (400) may also include human-accessible storage devices and their associated media such as optical media, including CD / DVD ROM / RW (420) having CD / DVD or similar media (421), thumb drives (422), removable hard disk drives or solid-state drives (423), conventional magnetic media such as magnetic tapes and floppy disks (not depicted), devices based on dedicated ROM / ASIC / PLD such as security dongles (not depicted), etc.
[0114] Those skilled in the art should also understand that the term "computer-readable medium" as used in connection with the presently disclosed subject matter does not include transmission media, carrier waves, or other transient signals.
[0115] The computer system (400) may also include a network interface (454) to one or more communication networks (455). The one or more communication networks (455) may be, for example, wireless, wired, or optical. The one or more communication networks (455) may also be local, wide area, metropolitan area, vehicular and industrial, real-time, latency-tolerant, etc. Examples of one or more communication networks (455) include: local area networks such as Ethernet, wireless LAN, cellular networks including GSM, 3G, 4G, 5G, LTE, etc.; cable or wireless wide area digital television networks including cable television, satellite television, and terrestrial broadcast television; and vehicular and industrial networks including CANbus, etc. Some networks typically require external network interface adapters that attach to certain general-purpose data ports or peripheral buses (449) (e.g., the USB port of the computer system (400)); others are typically integrated into the core of the computer system (400) via system buses as described below (e.g., integrated into a PC computer system via an Ethernet interface or into a smartphone computer system via a cellular network interface). Using any of these networks, the computer system (400) can communicate with other entities. Such communication can be one-way receive-only (e.g., broadcast television), one-way transmit-only (e.g., CANbus to certain CANbus devices), or bidirectional, such as to other computer systems using local or wide-area digital networks. As described above, certain protocols and protocol stacks can be used on each of these networks and network interfaces.
[0116] The aforementioned human-machine interface device, human-accessible storage device, and network interface can be attached to the kernel (440) of the computer system (400).
[0117] The core (440) may include one or more central processing units (CPUs) (441), graphics processing units (GPUs) (442), dedicated programmable processing units (443) in the form of field-programmable gate arrays (FPGAs), task-specific hardware accelerators (444), etc. These devices, along with read-only memory (ROM) (445), random access memory (446), and internal mass storage devices (e.g., internal non-user-accessible hard disk drives, SSDs, etc.) (447), can be connected via a system bus (448). In some computer systems, the system bus (448) may be accessible as one or more physical connectors to allow for the addition of additional CPUs, GPUs, etc. Peripheral devices may be directly attached to the core's system bus (448) or attached to the system bus (448) via a peripheral bus (449). Peripheral bus architectures include PCI, USB, etc.
[0118] The CPU (441), GPU (442), FPGA (443), and accelerator (444) can execute certain instructions, which, when combined, form the aforementioned computer code. This computer code can be stored in ROM (445) or RAM (446). Transient data can also be stored in RAM (446), while permanent data can be stored, for example, in an internal mass storage device (447). Fast storage and retrieval of any memory device can be achieved by using a cache memory that can be closely associated with one or more CPUs (441), GPUs (442), mass storage devices (447), ROMs (445), RAMs (446), etc.
[0119] Computer-readable media may contain computer code for performing operations of various computer implementations. The media and computer code may be those specifically designed and constructed for the purposes of this disclosure, or they may be of types known and available to those skilled in the art of computer software.
[0120] By way of example and not limitation, a computer system having an architecture (400) and specifically having a kernel (440) can provide the functionality to execute, as a processor (including CPU, GPU, FPGA, accelerator, etc.), software contained in one or more tangible computer-readable media. Such a computer-readable medium can be a medium associated with a user-accessible mass storage device as described above, and with certain storage devices of the kernel (440) as being of a non-transitory nature, such as an internal kernel mass storage device (447) or ROM (445). Software implementing various embodiments of this disclosure can be stored in such a device and executed by the kernel (440). Depending on specific needs, the computer-readable medium may include one or more storage devices or chips. The software can cause the kernel (440) and specifically the processor therein (including CPU, GPU, FPGA, etc.) to execute a specific process or a specific portion of a specific process described herein, including defining data structures stored in RAM (446) and modifying such data structures according to a software-defined process. Alternatively or as an alternative, a computer system may provide functionality as a result of logic hardwired or otherwise incorporated in circuitry (e.g., an accelerator (444)), which may operate in place of or with the software to perform a particular process or a particular portion of a particular process described herein. References to software may include logic, and vice versa, where appropriate. References to computer-readable media may, where appropriate, cover circuitry storing software for execution (e.g., integrated circuits (ICs)), circuitry containing logic for execution, or both. This disclosure includes any suitable combination of hardware and software.
[0121] This disclosure also provides a system for session-based DASH operations. The system includes: a first sending module configured to send a Media Presentation Description (MPD) during a media access session, the MPD referencing a session-based Description (SBD) and indicating a keyword name, and used to describe the media presentation of media content divided into a sequence of segments; a second sending module configured to send the SBD referenced by the MPD, the SBD including a first repeat pattern element, the first repeat pattern element including a first timing keyword value sequence of the keyword name, the first repeat pattern element indicating that the first timing keyword value sequence of the keyword name repeats along a timeline or sequence line; a receiving module configured to receive from a DASH client a request for a segment of the segment sequence, the request including the keyword name and a first keyword value of the keyword name, and the first repeat pattern element in the SBD indicating the first keyword value of the keyword name, the first keyword value corresponding to a timing or segment number of the current segment of the segment sequence; and a third sending module configured to send the requested segment of the segment sequence to the DASH client in response to the received request for the segment of the segment sequence.
[0122] In some examples, the first repeat pattern element includes a repeat attribute that indicates the number of times the first timed keyword value sequence of the keyword name is repeated.
[0123] In some examples, when the value of the repeat attribute is -1, the first timing keyword value sequence of the keyword name is repeated until the media access session ends.
[0124] In some examples, when the value of the repeat attribute is 1, the first timing keyword value sequence of the keyword name is not repeated.
[0125] In some examples, the first repeating pattern element includes a second repeating pattern element nested within the keyword name, the second repeating pattern element including a second timed keyword value sequence of the keyword name, the second timed keyword value sequence of the keyword name being repeated in a manner indicated by the second repeating pattern element to form a third timed keyword value sequence of the keyword name, and the third timed keyword value sequence of the keyword name being a part of the first timed keyword value sequence of the keyword name.
[0126] In some examples, in addition to the first repeating pattern element, the SBD also includes a fourth timing keyword value sequence of the keyword name.
[0127] In some examples, the first repeating pattern element includes a start time attribute that indicates the start time when the first timing keyword value sequence of the keyword name in the first repeating pattern element begins to be applied.
[0128] In some examples, the start time is represented by an offset relative to a reference timing.
[0129] In some examples, the first timing keyword value sequence of the keyword name is repeated along the sequence line, and the first repeating pattern element includes a start count attribute that indicates the start segment number at which the timing keyword value sequence of the keyword name in the first repeating pattern element begins to be applied.
[0130] In some examples, the start segment number is a segment number relative to a start time, which is indicated by the SBD start time attribute of the SBD.
[0131] This disclosure also provides a computer device. The device includes a processor and a memory. The memory stores program code and transmits the program code to the processor; the processor executes instructions in the program code to send a Media Presentation Description (MPD) during a media access session. The MPD references a Session-Based Description (SBD) and indicates a keyword name used to describe the media presentation of media content divided into a sequence of segments. The SBD referenced by the MPD can be sent. The SBD includes a first repeat pattern element, which includes a first timing keyword value sequence of the keyword name. The first repeat pattern element indicates that the first timing keyword value sequence of the keyword name repeats along a timeline or sequence line. A request for a segment of the segment sequence can be received from a DASH client. The request includes the keyword name and a first keyword value of the keyword name, and the first repeat pattern element in the SBD indicates the first keyword value of the keyword name, the first keyword value corresponding to the timing or segment number of the current segment of the segment sequence. In response to a received request for a segment of the segment sequence, the requested segment of the segment sequence can be sent to the DASH client.
[0132] While several exemplary embodiments have been described in this disclosure, there are modifications, substitutions, and various alternative equivalents that fall within the scope of this disclosure. Therefore, it should be understood that those skilled in the art will be able to design a variety of systems and methods that, while not expressly shown or described herein, embody the principles of this disclosure and are therefore within its spirit and scope.
Claims
1. A method for session-based dynamic adaptive streaming of DASH over HTTP, applied to a media streaming system, the method comprising: During a media access session, a media presentation description (MPD) is sent, which references a session-based description (SBD) and indicates keyword names, and is used to describe the media presentation of media content that is divided into a sequence of segments. Send the SBD referenced by the MPD, the SBD including a first repeat pattern element, the first repeat pattern element including a first timing keyword value sequence of the keyword name, the first repeat pattern element indicating that the first timing keyword value sequence of the keyword name repeats along a timeline or sequence line; The request for a segment of the segment sequence is received from the DASH client. The request includes the keyword name and a first keyword value of the keyword name, and the first repeating pattern element in the SBD indicates the first keyword value of the keyword name. The first keyword value corresponds to the timing or segment number of the current segment of the segment sequence. as well as In response to a received request for a segment of the segment sequence, the requested segment of the segment sequence is sent to the DASH client.
2. The method according to claim 1, characterized in that, The first repeating pattern element includes a repeating attribute, which indicates the number of times the first timing keyword value sequence of the keyword name is repeated.
3. The method according to claim 2, characterized in that, When the value of the repeat attribute is -1, the first timing keyword value sequence of the keyword name is repeated until the media access session ends.
4. The method according to claim 2, characterized in that, When the value of the repeat attribute is 1, the first timing keyword value sequence of the keyword name is not repeated.
5. The method according to any one of claims 1-4, characterized in that, The first repeating pattern element includes a second repeating pattern element nested within it. The second repeating pattern element includes a second timed keyword value sequence of the keyword name. The second timed keyword value sequence of the keyword name is repeated in the manner indicated by the second repeating pattern element to form the third timed keyword value sequence of the keyword name, and The third timing keyword value sequence of the keyword name is a part of the first timing keyword value sequence of the keyword name.
6. The method according to any one of claims 1-4, characterized in that, The first repeating pattern element includes a start time attribute, which indicates the time at which the first timing keyword value sequence of the keyword name in the first repeating pattern element begins to be applied, and the start time is represented by an offset relative to a reference timing.
7. The method according to any one of claims 1-4, characterized in that, The first repeating pattern element includes a start count attribute, which indicates the start segment number at which the timing keyword value sequence of the keyword name in the first repeating pattern element begins to be applied.
8. The method according to claim 7, characterized in that, The start segment number is a segment number relative to the start time, which is indicated by the SBD start time attribute of the SBD.
9. A system for session-based dynamic adaptive streaming of DASH over HTTP, comprising circuitry configured to perform the method as described in any one of claims 1-8.
10. A non-transitory computer-readable medium storing instructions, which, when executed by a processor, cause the processor to perform the method according to any one of claims 1-8.
11. A system for session-based dynamic adaptive streaming of DASH over HTTP, comprising: A first sending module is configured to send a Media Presentation Description (MPD) during a media access session. The MPD references a session-based description (SBD) and indicates keyword names, and is used to describe the media presentation of media content divided into a sequence of segments. A second sending module is configured to send the SBD referenced by the MPD, the SBD including a first repeat pattern element, the first repeat pattern element including a first timing keyword value sequence of the keyword name, the first repeat pattern element indicating that the first timing keyword value sequence of the keyword name repeats along a timeline or sequence line. A receiving module is configured to receive a request for a segment of the segment sequence from a DASH client, the request including the keyword name and a first keyword value of the keyword name, and the first repeating pattern element in the SBD indicates the first keyword value of the keyword name, the first keyword value corresponding to the timing or segment number of the current segment of the segment sequence; as well as A third sending module is configured to send the requested segment of the segment sequence to the DASH client in response to a received request for the segment of the segment sequence.
12. A computer device, characterized in that, The device includes a processor and a memory: The memory is used to store program code and transmit the program code to the processor; The processor is configured to execute the method of any one of claims 1-8 according to the instructions in the program code.