System and method for preserving download bit rate and content playback pipeline

By maintaining the previous bit rate and part of the content playback pipeline while the content changes, the delay and image quality issues during content changes are solved, and a more efficient content change process is achieved.

CN119484900APending Publication Date: 2025-02-18OPEN TV INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310808847.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2017-09-08
Filing Date
2018-08-14
Publication Date
2025-02-18

AI Technical Summary

Technical Problem

During the content change process, the prior art has delay problems, including the granularity of the video or image and the need to establish a new content playback pipeline every time the content changes, resulting in an increase in delay.

Method used

Through a digital receiver, the play bit rate of the first segment of content is maintained to play a new segment of content and decide whether to retain at least a portion of the content playback pipeline during switching to reduce delay and improve image quality.

Benefits of technology

Reduced latency when content changes are achieved and better image quality is provided from the beginning, while avoiding the process of rebuilding the content delivery pipeline and improving the efficiency of content changes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119484900A_ABST
    Figure CN119484900A_ABST
Patent Text Reader

Abstract

The invention relates to systems and methods for preserving download bit rates and content playback pipelines. Systems and methods for optimizing a content change process are provided. In an exemplary embodiment, a digital receiver causes a first piece of content to be played. During playback of the first piece of content, the digital receiver receives a selection of a new piece of content for playback. In response to receiving the selection, the digital receiver maintains a bit rate for playing the first piece of content to start playing of a new piece of content.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the PCT patent application entered into China with Chinese patent application number 201880065328.8, invention name “System and method for preserving download bit rate and content playback pipeline”, and application date August 14, 2018.

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS

[0003] This application claims the benefit of Indian Application Serial No. 201741031917 filed on September 8, 2017, the entire contents of which are incorporated herein by reference. Technical Field

[0004] The present invention generally relates to machines in the technical field of special purpose machines configured to optimize content change processes (e.g., channel changes), including computerized variations of such special purpose machines and improvements to such variations, and to techniques that improve such special purpose machines compared to other special purpose machines that facilitate optimizing content changes. In particular, the present invention proposes systems and methods for preserving download bitrates and content playback pipelines during content change processes. Background Art

[0005] Typically, during content switching (e.g., caused by a channel change or selection of a different piece of content), latency occurs as certain information is acquired before a new piece of content (e.g., a program, movie, show) is rendered and displayed. Additionally, for content that is streamed at an adaptive bitrate, the content is typically streamed or downloaded initially at a low (or lowest) bitrate, and then the bitrate is slowly increased until the optimal bitrate is achieved. This results in a grainy initial video or image. Additionally, each time a content change occurs, the content playback pipeline needs to be established, which adds latency. Summary of the invention

[0006] According to one embodiment of the present invention, a method for preserving a download bit rate and a content playback pipeline is provided, comprising: enabling, via a digital receiver, playback of a first segment of content at a first bit rate; receiving, via the digital receiver, a selection of a new segment of content for playback during playback of the first segment of content; in response to receiving the selection, switching to the new segment of content by starting playback of the new segment of content using the first bit rate used to play the first segment of content; detecting whether the new content can continue to be played at the first bit rate; and in response to detecting that the new content cannot continue to be played at the first bit rate, adjusting the first bit rate.

[0007] According to another embodiment of the present invention, a system for preserving a download bit rate and a content playback pipeline is provided, comprising: one or more hardware processors; and a storage device storing instructions for configuring the one or more hardware processors to perform the following operations, the operations comprising: enabling, via a digital receiver, playback of a first segment of content at a first bit rate; receiving, via the digital receiver, a selection of a new segment of content for playback during playback of the first segment of content; in response to receiving the selection, switching to the new segment of content by starting playback of the new segment of content using the first bit rate used to play the first segment of content; detecting whether the new content can continue to be played at the first bit rate; and in response to detecting that the new content cannot continue to be played at the first bit rate, adjusting the first bit rate.

[0008] According to another embodiment of the present invention, a machine-readable medium is provided, which stores instructions that, when executed by one or more hardware processors of the machine, cause the machine to perform the following operations, the operations comprising: causing a first segment of content to be played, through a digital receiver; receiving, through the digital receiver, a selection of a new segment of content for playback during playback of the first segment of content; and in response to receiving the selection, switching to the new segment of content by starting playback of the new segment of content using a first bit rate used to play the first segment of content; detecting whether the new content can continue to be played at the first bit rate; and in response to detecting that the new content cannot continue to be played at the first bit rate, adjusting the first bit rate. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Each of the figures attached depicts merely exemplary embodiments of the invention and is not to be considered limiting the scope of the invention.

[0010] Figure 1 is a schematic diagram illustrating an exemplary environment for optimizing content changes;

[0011] Figure 2 is a block diagram illustrating an exemplary embodiment of components within a digital receiver according to an exemplary embodiment.

[0012] Figure 3 is a flow chart of a method for optimizing a content modification process according to an exemplary embodiment.

[0013] Figure 4 is a flow chart of a method for reserving a content delivery pipeline according to an exemplary embodiment.

[0014] Figure 5 is a schematic diagram of a machine in the example form of a computing system within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein, according to an exemplary embodiment. DETAILED DESCRIPTION

[0015] The following description includes systems, methods, techniques, instruction sequences and computing machine program products that implement the exemplary embodiments of the subject of the invention. In the following description, for the purpose of explanation, many specific details are set forth in order to provide an understanding of the various embodiments of the subject of the invention. However, it will be apparent to those skilled in the art that the embodiments of the subject of the invention can be put into practice without some or other of these specific details. Typically, well-known instruction instances, protocols, structures and techniques will not be shown in detail. Examples represent possible variations only. Unless otherwise expressly stated, structures (e.g., structural components, such as modules) are optional and can be combined or subdivided, and operations (e.g., in processes, algorithms or other functions) can be sequentially varied or combined or subdivided.

[0016] The exemplary embodiments described herein provide systems and methods for optimizing content changes or switching of content being viewed, such as by changing channels or selecting different segments of content from a viewing list. In some embodiments, the system uses browsing context (e.g., the way a user interacts with an application) to identify content of (potential) interest to the viewer. The system then pre-acquires metadata for the content of interest from the content provider and stores the metadata in a local cache. The metadata includes pre-conditions for rendering and displaying a segment of content, including a minimum data set that the system can obtain without decrypting the content. In an exemplary embodiment, the pre-acquired metadata can be used to determine whether to retain at least a portion of a content playback pipeline (also referred to herein as a "content delivery pipeline" or simply "pipeline").

[0017] Typically, the same segment of content is divided into multiple segments (e.g., 10 second segments), and each segment has a different bit rate. Low bit rates may be grainy, while high bit rates usually have better image quality. Typically, when a new segment of content is started, the system does not know the quality of the network bandwidth. As a result, in order to start playing as quickly as possible, conventional systems start with the lowest bit rate. Therefore, whenever a user switches from one content to the next, the playback will start at the lowest bit rate and slowly increase or improve according to network performance. In contrast, the exemplary embodiment retains the previous bit rate when switching to a new segment of content. That is, when a user selects a new segment of content to play (e.g., switching from a previous segment of content to a new segment of content), the exemplary embodiment maintains or retains the bit rate (heuristically determined) used for streaming or downloading the previous segment of content when starting the playback of the new segment of content. This makes it possible to start playing as quickly as possible while providing better image quality from the beginning.

[0018] Furthermore, in conventional systems, switching or converting content typically causes the delivery pipeline for the previous content to be deconstructed (e.g., previously acquired resources are released). Subsequently, a new pipeline is created for the new piece of content (e.g., new resources are acquired). In contrast, exemplary embodiments may maintain or preserve part (or all) of the content delivery pipeline (e.g., including source elements, demultiplexers ("demuxers"), video decoders, and audio decoders) used to obtain the previous piece of content, rather than rebuilding the pipeline (e.g., destroying the content delivery pipeline and establishing a new content delivery pipeline). Preservation of the pipeline also allows the new content to be played as quickly as possible.

[0019] As a result, one or more methods described herein help solve the technical problem of optimizing content changes (e.g., reducing the time for channel changes or loading of new content), regardless of the delivery channel - whether the content is broadcast (e.g., IPTV and multicast) or Internet TV (over-the-top, OTT). The method includes: by a digital receiver, playing a first piece of content, and during the playback of the first piece of content, receiving a selection of a new piece of content for playback. In response to receiving the selection, the digital receiver maintains the bit rate used to play the first piece of content to start the playback of the new piece of content. The method further includes: determining whether to retain at least a portion of the playback pipeline when switching to playing the new piece of content. In some embodiments, retaining at least a portion of the playback pipeline includes: determining whether to retrain the audio decoder and video decoder of the pipeline when switching to playing the new piece of content. Therefore, one or more methods discussed herein improve latency during content changes while maintaining image quality. It should be noted that content changes include: selecting a piece of content for viewing (e.g., from a content access page such as a favorites grid or through a program guide) and channel changes (e.g., linear channel changes).

[0020] Reference Figure 1 , shows an embodiment of an exemplary environment 100 that enables optimization of content changes (e.g., reducing delays during channel changes or selection of a piece of content for viewing). In an exemplary embodiment, a user's digital receiver 102 provides access to digital content and manages content change operations. In one embodiment, the digital receiver 102 is a set-top box. The digital receiver 102 is connected to a viewing device 104 (e.g., a television or monitor) on which a user can view digital content. In some embodiments, the digital receiver 102 (e.g., the operation of the digital receiver 102) can be combined with the viewing device 104 (e.g., a smart TV, tablet, or smartphone). In conjunction with the following Figure 2 The components of the digital receiver 102 used to perform the operations of the exemplary embodiment are discussed in further detail.

[0021] In some embodiments, the digital receiver 102 accesses (e.g., pulls, receives, retrieves) content from a content delivery network (CDN) server 108 via the network 106. The CDN server 108 may obtain content from one or more content providers 110 (e.g., servers of the content provider 110). In an exemplary embodiment, the CDN server 108 may be associated with a third-party service (e.g., Netflix, Hulu, YouTube, Amazon) that stores and provides content such as, but not limited to, over-the-top television (OTT) content, video on demand (VOD) content, Internet content, or content broadcast to the digital receiver 102 via the network 106. The content includes: text, images, audio and / or video content (e.g., movies, television programs, videos), and in some embodiments, includes live (e.g., real-time) content. In some embodiments, the content provider 110 provides the content directly to the digital receiver 102 via the network 106 for display on the viewing device 104.

[0022] One or more portions of network 106 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of a public switched telephone network (PSTN), a cellular telephone network, a wireless network, a WiFi network, a WiMax network, a satellite network, a cable network, a broadcast network, another type of network, or a combination of two or more such networks. Any one or more portions of network 106 may communicate information via a transmission medium or a signal medium. As used herein, "transmission medium" refers to any intangible (e.g., volatile) medium capable of conveying (e.g., transmitting) instructions executed by a machine (e.g., by one or more processors of the machine), and includes digital or analog communication signals or other intangible media to facilitate communication of such software.

[0023] It should be noted that Figure 1 The environment 100 shown is only an example. For example, any number of CDN servers 108 and content providers 110 can be implemented within the environment 100. In addition, some components of the environment 100 can be combined. For example, the functionality of the digital receiver 102 can be implemented within the viewing device 104 to form a single device, such as a smart TV, a tablet, a smart phone, or any other device capable of acquiring, rendering, and displaying content. In addition, the functionality described herein for any single system or machine can be subdivided into multiple systems or machines.

[0024] Figure 1 As shown or with Figure 1Any system or machine (e.g., database, device, server) of interest may be, include, or otherwise be implemented in a special-purpose (e.g., dedicated or other non-general purpose) computer that has been modified (e.g., configured or programmed with software, such as one or more software modules of an application, operating system, firmware, middleware, or other program) to perform one or more functions of the system or machine described herein. For example, referring to Figure 5 A special purpose computer system capable of implementing any one or more of the methods described herein is discussed, and such a special purpose computer may accordingly be an apparatus for performing any one or more of the methods discussed herein. In the art of such special purpose computers, a special purpose computer that has been modified with the structure discussed herein to perform the functions discussed herein is an improvement in the art over other special purpose computers that lack the structure described herein or are unable to perform the functions discussed herein. Therefore, a special purpose machine configured according to the systems and methods discussed herein provides an improvement in the art over similar special purpose machines.

[0025] Figure 2 1 is a block diagram illustrating an exemplary embodiment of components within a digital receiver 102 according to an exemplary embodiment. In an exemplary embodiment, the digital receiver 102 manages access to content streamed over a network 106. Specifically, the digital receiver 102 pre-acquires metadata, reserves the bit rate used for playback (e.g., streaming or downloading) of a previous segment of content when starting playback of a new segment of content, and reserves at least a portion of a content delivery pipeline. To accomplish these operations, the digital receiver 102 includes: a player 202, a content delivery pipeline 204 (also referred to as a "pipeline"), a cache manager 206, and a cache 208, all of which can be configured to communicate with each other (e.g., via a bus, shared memory, or switch). The digital receiver 102 includes other components (not shown) that are not relevant to the operation of the exemplary embodiment.

[0026] The player 202 is configured to manage the pipeline 204. In an exemplary embodiment, when the first piece of content is selected for display, the player 204 instantiates (e.g., builds) the pipeline 204. A different pipeline can be built for each type of content. For example, the player 202 builds an HTTP Live Streaming (HLS) pipeline for HLS content and a Dynamic Adaptive Streaming over HTTP (DASH) pipeline for DASH content. When a content switch occurs (e.g., a channel change or new content is selected for viewing), the player 204 also determines whether to maintain at least a portion of the pipeline 204 or build a new pipeline. In conjunction with the following Figure 4 Exemplary methods for managing pipeline reservations are discussed in further detail.

[0027] The pipeline 204 is constructed by the player 202 by acquiring appropriate resources for obtaining and processing content data in order to play the selected content. The resources of the pipeline 204 include: source element 212, demultiplexer ("demux") 214, audio decoder 216 and video decoder 218. The source element 212 manages the download of content data for the selected segment content. The source element 212 also manages the bit rate adaptation at the digital receiver 102. Specifically, the source element 212 remembers the last bit rate used to play the current / previous segment content and continues to use this bit rate to play new content. In this way, if the last bit rate is high, the source element 212 will start with the same high bit rate for new content. If the new content cannot be played at this bit rate, the source element 212 will reduce the bit rate. For example, if the time taken to download the content is less than the expected time, there is excess bandwidth and the bit rate can be increased. On the contrary, if the time taken to download is longer than the expected time, the bit rate is reduced. Thus, the exemplary embodiment will begin playback of new content at the previous / last bitrate, rather than starting at a lower or lowest bitrate (and slowly increasing).

[0028] The demultiplexer demultiplexes the content data obtained from the CDN server 108 or the content provider 110 to obtain an audio signal and a video signal. The audio signal is sent to the audio decoder 216 for processing, and the video signal is sent to the video decoder 218 for processing. The results from the audio decoder 216 and the video decoder 218 are output (e.g., sent) to the viewing device 104 for presentation to the user.

[0029] The cache manager 206 manages the pre-acquisition of metadata for content that may potentially be selected for playback. In some embodiments, the cache manager 206 predicts content that a user may be interested in viewing. For example, a user may be browsing a linear list of channels or programs (e.g., an electronic program guide; "EPG") in a particular direction (e.g., up or down). In this embodiment, the cache manager 206 predicts the next set of content based on the browsing direction on the linear list. In another example, the user may be viewing a video-on-demand (VoD) catalog or the user's watch list. If the user requests information or hovers over a selection for a piece of content, the cache manager 206 uses it as a prediction that the user is interested in this piece of content. Alternatively, the cache manager may consider all (or some) pieces of content in the visual portion of the catalog or watch list as content of interest. In any of these cases, the cache manager 206 pre-acquires metadata for the content of interest and stores the pre-acquired data to the cache 208. The metadata may include, for example, one or more uniform resource locators (URLs) where the content is available; URLs for different bit rates; license data (e.g., where to obtain the license); and codec information. As will be discussed further below, the player 202 will use the codec information to determine whether to retain at least a portion of the pipeline 204. If the user subsequently selects content for which metadata has been pre-fetched, the metadata may be accessed from the cache 208 after the selection, rather than having to retrieve the metadata from the CDN server 108 or the content provider 110 over the network 106. This will help reduce latency in playback.

[0030] Any one or more components (e.g., modules, decoders, resources) described herein can be implemented separately using hardware (e.g., one or more processors of a machine), or can be implemented using a combination of hardware and software. For example, any component described herein can physically include the arrangement of one or more processors, or configure a processor (e.g., among one or more processors of a machine) to perform the operation described herein for the module. Therefore, the different components described herein can include and be configured with different arrangements of processors at different time points or a single arrangement of processors at different time points. Each component described herein is an example of a device for performing the operation described herein for the component. Moreover, any two or more of these components can be combined into a single component, and the function described herein for a single component can be subdivided among multiple components. In addition, according to various exemplary embodiments, the components described herein as being implemented in a single machine, a database or a device can be distributed on multiple machines, databases or devices.

[0031] Figure 31 is a flow chart of an exemplary method 300 for optimizing content changes according to an exemplary embodiment. In an exemplary embodiment, the method 300 is performed in part or in whole by components of the digital receiver 102. Therefore, the method 300 is described by way of example with reference to the digital receiver 102. However, it should be understood that at least some operations of the method 300 may be deployed on various other hardware configurations, or may be performed by similar components located elsewhere in the environment 100. Therefore, the method 300 is not intended to be limited to the digital receiver 102.

[0032] At operation 302, a first piece of content is played by the viewing device 104. In an exemplary embodiment, the player 202 constructs a pipeline 204 for obtaining and processing content data of the first piece of content. Specifically, the player 202 obtains a source element 212, a demultiplexer 214, an audio decoder 216, and a video decoder 218 to form the pipeline 204. The data content is processed by the pipeline 204 and presented on the viewing device 104.

[0033] At operation 304, metadata for a set of one or more content of interest is pre-fetched. In an exemplary embodiment, cache manager 206 predicts content of interest to the user and pre-fetches metadata for the content of interest. The pre-fetched data is then stored in cache 208. The metadata may include, but is not limited to: one or more URLs where a large amount of content is available; one or more URLs for different bit rates; license data (e.g., where to obtain a license); and codec information.

[0034] At operation 306, the player 202 receives an indication to switch to a new piece of content for playback. The indication may be received from a control device (e.g., a remote controller) of the user. In some embodiments, the user may scroll through an EPG or view a directory or watch list and select a new piece of content for viewing.

[0035] In operation 308, the digital receiver 102 maintains the bit rate when switching playback to a new segment of content. In an exemplary embodiment, when switching playback from an ongoing playback operation to a new playback operation, the source element 212 plays the new segment of content using the heuristic bit rate obtained for the playback of the first segment of content. Therefore, in contrast to starting a new playback from the lowest possible bit rate, the source element 212 attempts to maintain or retain the bit rate used for playback. If the new segment of content cannot be transmitted at this bit rate, the source element 212 will reduce the bit rate. In this way, the exemplary embodiment will start the download of the new content at the previous / last bit rate, rather than starting at a lower or lowest bit rate (and slowly increasing). This makes it possible to play the new content immediately at the best bit rate without having to heuristically recalculate the best bit rate starting from the lowest possible bit rate. Typically, obtaining the best bit rate usually requires downloading several segments or blocks of content data, resulting in a gradual improvement in image quality. However, from the very beginning of the new content playback, the exemplary embodiment using the previously obtained heuristic bit rate maintains the same image quality level as the image quality level of the previous playback.

[0036] At operation 310, a pipeline reservation process is performed to determine whether to retain at least a portion of the pipeline used to play the first piece of content for use in playing the new piece of content. In addition, if the pipeline is to be retained or reserved, it is determined whether all resources of the pipeline should be reserved or only a portion of the pipeline should be reserved (e.g., only some resources are retained and other resources are released). Figure 4 The pipeline reservation process is discussed in more detail.

[0037] Figure 4 4 is a flow chart of an exemplary method 400 for preserving a content delivery pipeline according to an exemplary embodiment. In an exemplary embodiment, the method 400 is performed by the player 202 with reference to a portion or all of the resources of the pipeline 204. Therefore, the method 400 is described by way of example with reference to the player 202 and the pipeline 204. However, it should be understood that at least some operations of the method 400 may be deployed on various other hardware configurations, or may be performed by similar components located elsewhere in the environment 100. Therefore, the method 400 is not intended to be limited to the player 202 and the pipeline 204.

[0038] In operation 402, in response to receiving an indication to switch playback to new content, cache manager 206 accesses pre-fetched metadata for the new content stored in cache 208. The pre-fetched metadata for the new content may include: one or more URLs where the new content is available; one or more URLs for different bit rates associated with the new content; license data for the new content; and codec information for the new content. The pre-fetched metadata may also indicate whether the new content is the same type as the first segment of content. For example, the first segment of content and the new content may both be in HTTP Live Streaming (HLS) format, or may both be in Dynamic Adaptive Streaming over HTTP (DASH) format.

[0039] At operation 404, the player 202 determines whether the first piece of content and the new content have the same content type. If the first piece of content and the new content do not have the same type (e.g., the first piece of content is in HLS format and the new content is in DASH format), then at operation 406, the resources of the pipeline 204 (e.g., source element 212, demultiplexer 214, audio decoder 216, and video decoder 218) are released. Releasing all resources of the pipeline 204 essentially deconstructs the pipeline 204. The player 202 creates a new pipeline by acquiring other resources appropriate for the content type of the new content.

[0040] If the player 202 determines at operation 404 that the first piece of content and the new content have the same content type (e.g., both are in HLS format), then at operation 408, codec information for the new content is detected. In an exemplary embodiment, for the codec information, the player 202 checks pre-acquired metadata for the new content. The codec information indicates the type of decoder required for the new content.

[0041] In operation 410, it is determined by the player 202 whether the type of decoder required for the new content is the same as the decoder currently in the pipeline 204 for the first piece of content. If the type of decoder required is the same, then in operation 412, the entire pipeline 204 is reserved. In other words, the resources of the pipeline 204 are maintained and continue to be used to play the new content.

[0042] However, if the player 202 determines at operation 410 that the new content requires different decoders, then at operation 414, the decoders (e.g., audio decoder 216 and video decoder 208) are released. The remainder of the pipeline 204 (e.g., source element 212 and demultiplexer 214) is then reserved or maintained at operation 416. In these embodiments, the player 202 obtains a new set of decoders (e.g., a new audio decoder and a new video decoder) suitable for the new content and adds the new set of decoders to the reserved portion of the pipeline 204.

[0043] Although exemplary embodiments are discussed with respect to pipelining and bitrate preservation applicable to DASH and HLS, exemplary embodiments for preserving bitrate and pipelining may be applied to any type of content that is adaptive in nature (eg, content bitrate may vary based on bandwidth).

[0044] Figure 5 is a block diagram illustrating components of a machine 500 according to some exemplary embodiments, the machine 500 being capable of reading instructions 524 from a machine storage medium 522 (e.g., a non-volatile machine storage medium, a machine-readable storage medium, a computer-readable storage medium, or any suitable combination thereof) and performing, in whole or in part, any one or more of the methods discussed herein. Specifically, Figure 5 The machine 500 is shown in the example form of a computing device (e.g., a computer) in which instructions 524 (e.g., software, programs, applications, applet, applications, or other executable code) for causing the machine 500 to perform any one or more of the methodologies discussed herein may be implemented in whole or in part.

[0045] For example, instructions 524 may cause machine 500 to execute Figure 3 and Figure 4 The instructions 524 may transform a general-purpose, unprogrammed machine 500 into a specific machine (eg, a specially configured machine) programmed to perform the functions described and illustrated in the manner described.

[0046] In alternative embodiments, the machine 500 operates as a standalone device or can be connected (e.g., networked) to other machines. The machine 500 can be a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (e.g., STB), a personal digital assistant (PDA), a cellular phone, a smart phone, a Web appliance, a network router, a network switch, a bridge, a power adapter, or any machine 500 capable of executing instructions 524 in sequence or otherwise, the instructions 524 specifying actions to be taken by the machine 500. In addition, although only a single machine 500 is shown, the term "machine" should also be understood to include a collection of machines that individually or collectively execute instructions 524 to perform any one or more of the methodologies discussed herein.

[0047] The machine 500 includes: a processor 502 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), or any suitable combination thereof), a main memory 504, and a static memory 506, which are configured to communicate with each other via a bus 508. The processor 502 may include microcircuits that may be temporarily or permanently configured by some or all of the instructions 524, so that the processor 502 may be configured to perform any one or more of the methods described herein in whole or in part. For example, one or more microcircuits of a set of processors 502 may be configured to execute one or more modules (e.g., software modules) described herein.

[0048] The machine 500 may further include a graphics display 510 (e.g., a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, a cathode ray tube (CRT), or any other display capable of displaying graphics or video). The machine 500 may also include an alphanumeric input device 512 (e.g., a keyboard or keypad), a cursor control device 514 (e.g., a mouse, a touch pad, a trackball, a joystick, a motion sensor, an eye tracking device, or other pointing tool), a storage unit 516, a signal generating device 518 (e.g., a sound card, an amplifier, a speaker, a headphone jack, or any suitable combination thereof), and a network interface device 520.

[0049] The storage unit 516 includes a machine storage medium 522 (e.g., a tangible machine-readable storage medium) on which instructions 524 are stored, which implement any one or more of the methods or functions described herein. The instructions 524 may also be located, in whole or in part, within the main memory 504, within the processor 502 (e.g., within a cache memory of the processor), or both before or during execution of the instructions by the machine 500. Thus, the main memory 504 and the processor 502 may be considered to be machine storage media 522 (e.g., a tangible and non-volatile machine storage medium).

[0050] In some exemplary embodiments, the machine 500 may be a portable computing device and have one or more additional input components (e.g., sensors or meters). Examples of such input components include: an image input component (e.g., one or more cameras), an audio input component (e.g., a microphone), a direction input component (e.g., a compass), a position input component (e.g., a global positioning system (GPS) receiver), a direction component (e.g., a gyroscope), a motion detection component (e.g., one or more accelerometers), an altitude detection component (e.g., an altimeter), and a gas detection component (e.g., a gas sensor). Input collected by any one or more of these input components may be accessed and used by any module described herein.

[0051] Executable instructions and machine storage media

[0052] Various memories (i.e., 504, 506 and / or the memory of the processor 502) and / or the storage unit 516 may store one or more sets of instructions and data structures (e.g., software 524) that implement or are utilized by one or more of the methods or functions described herein. These instructions, when executed by the processor 502, cause various operations to implement the disclosed embodiments.

[0053] As used herein, the terms "machine storage media," "device storage media," "computer storage media" (collectively "machine storage media 522") mean the same thing and may be used interchangeably in the present invention. The term refers to a single or multiple storage devices and / or media (e.g., centralized or distributed databases and / or associated caches and servers) that store executable instructions and / or data, as well as a cloud-based storage system or storage network that includes multiple storage devices or devices. Thus, the term should be understood to include, but is not limited to, solid-state memory and optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage media, computer storage media, and / or device storage media 522 include: non-volatile memory, such as semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGA, and flash memory devices; disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms machine storage media, computer storage media, and device storage media 522 specifically exclude carrier waves, modulated data signals, and other such media, at least some of which are encompassed by the term "signal media" discussed below.

[0054] Signal medium

[0055] The term "signal medium" or "transmission medium" shall be deemed to include any form of modulated data signal, carrier wave, etc. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed so as to encode information in the signal.

[0056] Computer readable medium

[0057] The terms "machine-readable medium", "computer-readable medium" and "device-readable medium" mean the same thing and are used interchangeably in the present invention. These terms are defined to include both machine storage media and signal media. Thus, the term includes both storage devices / medium and carrier / modulated data signals.

[0058] The instructions 524 may further be sent or received over a communication network 526 via the network interface device 520 using a transmission medium and using any of a number of well-known transmission protocols (e.g., HTTP). Examples of communication network 526 include: a local area network (LAN), a wide area network (WAN), the Internet, a mobile phone network, a plain old telephone service (POTS) network, and wireless data networks (e.g., WiFi, LTE, and WiMAX networks). The term "transmission medium" shall be deemed to include any intangible medium that is capable of storing, encoding, or carrying the instructions 524 to be executed by the machine 500, and includes digital or analog communication signals or other intangible media that facilitate communication of such software.

[0059] Throughout the specification, multiple instances may implement components, operations or structures described as a single instance. Although the individual operations of one or more methods are shown and described as individual operations, one or more individual operations may be performed simultaneously, and the operations do not need to be performed in the order shown. The structures and functions represented as individual components in the exemplary configuration may be implemented as combined structures or components. Similarly, the structures and functions presented as individual components may be implemented as individual components. These and other variations, modifications, additions and improvements fall within the scope of the subject matter of this article.

[0060] Certain embodiments are described herein as including logic or multiple components, modules or mechanisms. A module may constitute a software module (e.g., a code implemented on a machine storage medium 522 or in a transmission signal) or a hardware module. A "hardware module" is a tangible unit that can perform certain operations and can be configured or arranged in a certain physical manner. In various exemplary embodiments, one or more computer systems (e.g., an independent computer system, a client computer system, or a server computer system) or one or more hardware modules of a computer system (e.g., a processor 502 or a group of processors 502) can be configured by software (e.g., an application or an application portion) to operate to perform a hardware module of certain operations described herein.

[0061] In some embodiments, the hardware module can be implemented mechanically, electronically or in any suitable combination thereof. For example, the hardware module may include a dedicated circuit or logic that is permanently configured to perform certain operations. For example, the hardware module may be a dedicated processor, such as a field programmable gate array (FPGA) or an ASIC. The hardware module may also include a programmable logic or circuit that is temporarily configured to perform certain operations by software. For example, the hardware module may include software contained in a general-purpose processor or other programmable processor. It should be understood that the hardware module may be mechanically implemented in a dedicated and permanently configured circuit or in a temporarily configured circuit (e.g., configured by software) by cost and time considerations.

[0062] Accordingly, the phrase "hardware module" should be understood to include a tangible entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or perform certain operations described herein. As used herein, a "hardware-implemented module" refers to a hardware module. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each hardware module does not need to be configured or instantiated at any one time. For example, in the case where the hardware module includes a general-purpose processor that is configured by software to become a special-purpose processor, the general-purpose processor can be configured as different special-purpose processors (e.g., including different hardware modules) at different times. The software can configure the processor accordingly, for example, to constitute a specific hardware module at one time and to constitute different hardware modules at different times.

[0063] The various operations of the exemplary methods described herein may be performed, at least in part, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Such processors, whether temporarily or permanently configured, may constitute processor-implemented modules that operate to perform one or more operations or functions described herein. As used herein, a "processor-implemented module" refers to a hardware module implemented using one or more processors.

[0064] Similarly, the methods described herein may be at least partially implemented by a processor, which is an example of hardware. For example, at least some operations of the methods may be performed by one or more processors or processor-implemented modules.

[0065] Example

[0066] Example 1 is a method for optimizing a content change process. The method includes: playing a first piece of content by a digital receiver; receiving a selection of a new piece of content for playing by the digital receiver during the playing of the first piece of content; and maintaining the bit rate used for playing the first piece of content by a processor of the digital receiver in response to receiving the selection to start playing the new piece of content.

[0067] In Example 2, the subject matter of Example 1 may optionally include: determining whether the new segment of content is of the same type as the first segment of content; and determining whether to retain at least a portion of the playback pipeline based on the new segment of content being of the same type as the first segment of content.

[0068] In Example 3, the subject matter of Examples 1-2 may optionally include: wherein determining whether to retain includes: detecting codec information for a new section of content, the codec information indicating the type of decoder required for the new section of content; determining whether the audio decoder and video decoder in the pipeline are of the type indicated by the codec information.

[0069] In Example 4, the subject matter of Examples 1-3 may optionally include: in response to an audio decoder and a video decoder in the pipeline being of a type indicated by the codec information, retaining the entire pipeline.

[0070] In Example 5, the subject matter of Examples 1-4 may optionally include: in response to the audio decoder and video decoder in the pipeline being different from the type indicated by the codec information, releasing the audio decoder and video decoder in the pipeline; and obtaining a new audio decoder and a new video decoder based on the codec information.

[0071] Example 6 is a system for optimizing a content change process. The system includes: one or more hardware processors; and a storage device storing instructions for configuring the one or more hardware processors to perform operations, the operations including: causing a first piece of content to be played; during the playback of the first piece of content, receiving a selection for a new piece of content to be played; in response to receiving the selection, maintaining the bit rate used to play the first piece of content to start playback of the new piece of content.

[0072] In Example 7, the subject matter of Example 6 may optionally include: determining whether the new segment of content is of the same type as the first segment of content; and determining whether to retain at least a portion of the playback pipeline based on the new segment of content being of the same type as the first segment of content.

[0073] In Example 8, the subject matter of Examples 6-7 may optionally include: wherein determining whether to retain includes: detecting codec information for a new piece of content, the codec information indicating the type of decoder required for the new content; determining whether the audio decoder and video decoder in the pipeline are of the type indicated by the codec information.

[0074] In Example 9, the subject matter of Examples 6-8 may optionally include: in response to the audio decoder and the video decoder in the pipeline being of the type indicated by the codec information, retaining the entire pipeline.

[0075] In Example 10, the subject matter of Examples 6-9 may optionally include: in response to the audio decoder and the video decoder in the pipeline being different from the type indicated by the codec information, releasing the audio decoder and the video decoder in the pipeline; and obtaining a new audio decoder and a new video decoder based on the codec information.

[0076] Example 11 is a machine-readable medium storing instructions that, when executed by one or more hardware processors of the machine, cause the machine to perform operations, the operations comprising: causing a first segment of content to be played; during the playback of the first segment of content, receiving a selection for a new segment of content for playback; and in response to receiving the selection, maintaining the bit rate used to play the first segment of content to start playback of the new segment of content.

[0077] In Example 12, the subject matter of Example 11 may optionally include: determining whether the new segment of content is of the same type as the first segment of content; and determining whether to retain at least a portion of the playback pipeline based on the new segment of content being of the same type as the first segment of content.

[0078] In Example 13, the subject matter of Examples 11-12 may optionally include: wherein determining whether to retain includes: detecting codec information for a new piece of content, the codec information indicating the type of decoder required for the new content; determining whether the audio decoder and video decoder in the pipeline are of the type indicated by the codec information.

[0079] In Example 14, the subject matter of Examples 11-13 may optionally include: in response to the audio decoder and the video decoder in the pipeline being of the type indicated by the codec information, retaining the entire pipeline.

[0080] In Example 15, the subject matter of Examples 11-14 may optionally include: in response to the audio decoder and the video decoder in the pipeline being different from the type indicated by the codec information, releasing the audio decoder and the video decoder in the pipeline; and obtaining a new audio decoder and a new video decoder based on the codec information.

[0081] Some parts of the subject matter discussed herein may be presented in the form of an algorithm or symbolic representation of data stored in a machine memory (e.g., computer memory) as a bit or binary digital signal. Such an algorithm or symbolic representation is an example of a technique used by a person of ordinary skill in the field of data processing to convey the essence of their work to other persons of skill in the art. As used herein, an "algorithm" is a self-consistent sequence of operations or similar processes that result in a desired result. In this case, the algorithm and operation involve the physical manipulation of physical quantities. Typically, but not necessarily, such a quantity can take the form of an electrical, magnetic or optical signal that can be stored, accessed, transmitted, combined, compared or otherwise manipulated by a machine. Mainly for general purposes, it is sometimes convenient to refer to such a signal using words such as "data", "content", "bit", "value", "element", "symbol", "character", "term", "number", "digit", etc. However, these words are only convenient labels and should be associated with appropriate physical quantities.

[0082] Unless otherwise expressly stated, discussions herein utilizing words such as "process," "compute," "calculate," "determine," "present," "display," and the like may refer to the action or process of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electrical, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or any suitable combination thereof), registers, or other machine components that receive, store, transmit, or display information. Furthermore, unless otherwise expressly stated, as is well known in patent documents, the terms "a" or "an" are used herein to include one or more instances. Finally, unless otherwise expressly stated, as used herein, the conjunction "or" refers to a non-exclusive "or."

[0083] Although an overview of the subject matter of the present invention has been described with reference to specific exemplary embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of the embodiments of the present invention. For example, one of ordinary skill in the art may mix and match the various embodiments or features thereof, or make them optional. For convenience only, the term "invention" may be used herein to refer to these embodiments of the subject matter of the invention, either individually or collectively, and if more than one invention is actually disclosed, it is not intended to automatically limit the scope of the present application to any single invention or inventive concept.

[0084] It is believed that the embodiments shown herein are described in sufficient detail to enable those skilled in the art to practice the disclosed teachings. Other embodiments may be used and derived therefrom, so that structural and logical substitutions and changes may be made without departing from the scope of the present invention. Therefore, the detailed description should not be understood in a limiting sense, and the scope of the various embodiments is limited only by the appended claims and the full scope of equivalents to which these claims are entitled.

[0085] In addition, multiple instances can be provided for resources, operations or structures described as single instances herein. In addition, the boundaries between various resources, operations, modules, engines and data storage devices are arbitrary to some extent, and specific operations are shown in the context of specific illustrative configurations. Other allocations of functions can be envisioned, and they can fall within the scope of various embodiments of the present invention. Generally, the structures and functions presented as separate resources in the exemplary configuration can be implemented as combined structures or resources. Similarly, the structures and functions presented as single resources can be implemented as separate resources. These and other variations, modifications, additions and improvements fall within the scope of the embodiments of the present invention as represented by the appended claims. Therefore, the description and the accompanying drawings should be considered to be illustrative rather than restrictive.

Claims

1. A method performed by a digital receiver, the method comprising: During playback of the first piece of content, receiving a selection of a new piece of content for playback; In response to receiving the selection, transitioning to a new section of content; determining whether the new piece of content is of the same content type as the first piece of content; and Based on the fact that the new segment of content is of the same content type as the first segment of content, determine whether to retain at least a portion of a playback pipeline used to play the first segment of content, the playback pipeline including a source element, a demultiplexer, an audio decoder, and a video decoder for managing the downloading of content data of the new segment of content, and retaining at least a portion of the playback pipeline includes retaining one or more of the source element, demultiplexer, audio decoder, or video decoder used to obtain the first segment of content for the new segment of content.

2. The method according to claim 1, wherein: Determining whether to retain includes: detecting codec information of a new piece of content, the codec information indicating a type of decoder required for the new piece of content; and Determine whether the audio decoder and video decoder in the playback pipeline are of the type indicated by the codec information.

3. The method according to claim 2, further comprising: In response to the audio decoder and the video decoder in the playback pipeline being of the type indicated by the codec information, the entire playback pipeline is retained.

4. The method according to claim 2, further comprising: In response to an audio decoder and a video decoder in the playback pipeline being different from the type indicated by the codec information, releasing the audio decoder and the video decoder in the playback pipeline; as well as A new audio decoder and a new video decoder are obtained based on the codec information.

5. The method according to claim 2, wherein: Detecting codec information for a new piece of content includes checking pre-fetched metadata for the new piece of content.

6. The method according to any one of claims 1 to 5, wherein: Switching to a new piece of content includes starting playback of the new piece of content using the bit rate used to play the first piece of content to maintain the bit rate for playback of the new piece of content.

7. The method according to claim 6, further comprising: During the playback of a new piece of content using the bit rate, detecting whether the new piece of content can be played at the bit rate; as well as In response to detecting that a new section of content cannot continue to be played at the bit rate, the bit rate is reduced.

8. The method according to any one of claims 1 to 7, further comprising: Deconstructing the playback pipeline by releasing a source element, a demultiplexer, an audio decoder, and a video decoder based on the first piece of content being not the same content type as the new piece of content; as well as Create a new playback pipeline by acquiring additional sources of content types that can be applied to the new piece of content.

9. The method according to any one of claims 1 to 8, wherein: Receiving selection, switching to a new piece of content, determining whether the new piece of content is the same content type as the first piece of content, and determining whether to retain are performed by a player of the digital receiver.

10. A digital receiver, comprising: one or more hardware processors; as well as A storage device storing instructions for configuring one or more hardware processors to perform the method of any preceding claim.

11. A machine-readable medium carrying instructions which, when executed by one or more hardware processors of the machine, cause the machine to perform the method of any one of claims 1 to 9.