# Patent

## Title
Picture interdependencies signals in context of MMCO to assist stream manipulation

## Abstract

In one embodiment, a method that provides tier information corresponding to a picture, the tier information provided in an adaptation field of a transport packet, the transport packet comprising a first byte of a header of a packetized elementary stream (PES) containing the picture; and provides the first transport packet.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application claims priority to U.S. provisional application entitled, “Conveyance of Picture Interdependencies in Context of MMCO and Signalling of Information To Assist Stream Manipulation,” having Ser. No. 61/061,057, filed Jun. 12, 2008, which is entirely incorporated herein by reference.


TECHNICAL FIELD
The present disclosure relates generally to processing of video streams.
BACKGROUND
The implementation of digital video with an advanced video compression method is expected to extend the same level of usability and functionality that established compression methods extend to applications and network systems. Video processing devices throughout the network systems should continue to be provisioned with existing levels of video stream manipulation capabilities or better.
When providing video stream manipulation functionality for video streams compressed and formatted in accordance with the Advanced Video Coding (AVC) standard, referred to herein as AVC streams, it becomes difficult to determine whether the video stream is suitable for a particular stream manipulation operation or for operations extending end user functionality such as different video playback modes. Likewise, it becomes difficult for video processing equipment located at any of several locations throughout a network system to fulfill manipulation operations on AVC streams. This is because the AVC standard generally has a rich set of compression tools and can exploit temporal redundancies among pictures in more elaborate and comprehensive ways than prior video coding standards.



BRIEF DESCRIPTION OF THE FIGURES
Many aspects of the disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
FIG. 1 is a high-level block diagram depicting an example environment in which an embodiment of systems and methods that implement processing of compressed video and information identifying pictures in respective picture interdependency tiers.
FIG. 2 is a block diagram of an embodiment of a digital home communication terminal (DHCT) as depicted in FIG. 1 and related equipment, in which an embodiment of systems and methods that implement at least in part processing of compressed video and information identifying pictures in respective picture interdependency tiers.
FIG. 3 is a block diagram that illustrates picture interdependencies in an example sequence of compressed pictures provided by a transport stream generator.
FIG. 4 is a block diagram that illustrates a hierarchy of picture interdependency tiers.
FIG. 5 is a block diagram of various approaches to providing information pertaining to picture interdependency tiers.
FIGS. 6-10 are block diagrams that illustrates various embodiments of providing tier information in a data field.
FIGS. 11A-11C are flow diagrams that collectively illustrate one embodiment for decoded picture buffer management including MMCO operations.
FIG. 12 is a flow diagram that illustrates an example method embodiment for providing a tier information in a transport stream.
FIG. 13 is a flow diagram that illustrates an example method embodiment for receiving and processing tier information in a transport stream.



DESCRIPTION OF EXAMPLE EMBODIMENTS
Overview
In one embodiment, a method that provides tier information corresponding to a picture, the tier information provided in an adaptation field of a transport packet, the transport packet comprising a first byte of a header of a packetized elementary stream (PES) containing the picture; and provides the first transport packet.
Example Embodiments
Certain embodiments are disclosed herein that provide, receive, and/or process information conveyed in a transport stream (e.g., the transport stream compliant to MPEG-2) that assists in, among other operations, personal video recording (PVR) operations and decoded picture buffer management. In particular, system and method embodiments are disclosed that provide, receive, and or process information residing at the transport level in a data field, the data field referred to herein also as a tier assertion byte. The information pertains to picture interdependency tiers, memory management control operations (MMCO), and/or other information (e.g., picture information). Although expressed herein as a tier assertion byte, it should be understood in the context of the present disclosure that any of other data fields or mechanisms of bit or byte management may be employed in some embodiments. In addition, reference herein to the tier assertion byte and information corresponding to the tier assertion byte, as well as other information in the transport layer of a compressed video stream (e.g., that conveys the minimum number of independently decodable pictures per a defined time period) is referred to herein also generally as assist information or related tier information. Further, although a data field is described herein using a tier assertion byte, it should be appreciated that the data field is not limited in size to a byte, but may encompass in some embodiments other sizes of data fields. Also, flags or subfields are used in the disclosure as partitions of the data field to which respective information may be signaled.
Throughput this specification, tiers should be understood to refer to picture interdependency tiers. Interdependency tiers provide a mechanism to identify sub-sequences that can be decoded (or extracted) independently of other pictures (e.g., starting from an SRAP). Such picture interdependencies may be conveyed by a respective tier level or layer (e.g., designated as a tier number). For instance, in one scheme, a tier-one (Tier 1 or T1) level or layer or number consists of pictures that are decodable independent of pictures in Tiers 2 through T. Similarly, a tier-two (Tier 2 or T2) level or layer or number consists of pictures that are decodable independent of pictures in Tiers 3 through T, and so on. From another perspective, a Tier T picture may be viewed as pictures that are discardable without affecting the decodability of pictures in Tiers 1 through T-1. Similarly, a Tier (T-1) level or layer or number consists of pictures that are discardable without affecting the decodability of pictures in Tiers 1 through (T-2), and so on. Further explanation of interdependency tiers and/or the signalling of the same may be found in commonly-assigned U.S. Patent Application Publication No. 20080260045, entitled, “Signalling and Extraction in Compressed Video of Pictures Belonging to Interdependency Tiers.”
In addition, a description of the MPEG-2 Video Coding standard can be found in the following publication: (1) ISO/IEC 13818-2, (2000), “Information Technology—Generic coding of moving pictures and associated audio—Video.” A description of the AVC video coding standard can be found in the following publication: (2) ITU-T Rec. H.264 (2005), “Advanced video coding for generic audiovisual services.” A description of MPEG-2 Systems for transporting AVC video streams in MPEG-2 Transport packets can be found in the following publications: (3) ISO/IEC 13818-1, (2000), “Information Technology—Generic coding of moving pictures and associated audio—Part 1: Systems,” and (4) ITU-T Rec. H.222.0|ISO/IEC 13818-1:2000/AMD.3, (2004), “Transport of AVC video data over ITU-T Rec. H222.0|ISO/IEC 13818-1 streams.”
In one embodiment, tier information corresponding to a picture is provided in the adaptation field of an MPEG-2 transport packet to signal the tier number associated with the picture that has its PES (packetized elementary stream) header starting in the first byte of that MPEG-2 transport packet's payload. A tier assertion byte conveys tier information. A tier assertion byte includes one flag or subfield (flag and subfield used interchangeably herein) among plural subfields that is asserted (e.g., set to a value of “1”) to associate the corresponding picture with a given tier number. In other words, information in the data field signals a tier number. The ordering of at least a portion of the subfields may be according to increasing tier number (T1, T2, etc.) or decreasing tier number (T8, T7, etc.). In some embodiments, such ordering (e.g., increasing or decreasing) is signaled by an assertion of a subfield of the data assertion byte (i.e., information signals ordering of tier numbers).
In some embodiments, in addition to the tier information corresponding to a picture, information pertaining to MMCO is provided in the adaptation field of the same MPEG-2 transport packet. That is, the data field or tier assertion byte includes a subfield that asserts if an MMCO command is issued with the corresponding picture. In accordance with the AVC (H.264) specification, when decoding a first picture that issues an MMCO command, the reference pictures in the Decoded Picture Buffer (DPB) are affected. Consequently, the referencing of reference pictures that are subsequent to the first picture in the video stream is correct in accordance with the AVC specification. For instance, reference pictures in the DPB are kept rather than allow the sliding window bumping process to remove them from the DPB. Consequently, if the first picture is bypassed during a trick mode operation (i.e., a playback speed or mode other than the normal playback mode), the referencing of reference pictures in the decompression and reconstruction of a second picture after the first picture would be affected. Thus, to enable trick mode operation support the tier numbering is such that (1) a picture that depends on a reference picture cannot have a lower (e.g., smaller) number tier than the reference picture, and (2) a picture that depends on a picture issuing an MMCO command that affects its referencing cannot have a lower number tier than the picture issuing the MMCO command. Otherwise, the picture is not considered extractable and decodable (e.g., for a trick mode operation). Further, a picture issuing an MMCO command affecting references may be processed at the slice level, yet not decoded, e.g., during a trick mode operation as explained further below.
In some embodiments, related tier information includes one or more subfields that identifies a subsequent picture (i.e., information in the data field signals a subsequent picture) belonging to the same tier number as the picture to which the related tier information is associated or indicates that no such identification is present. In one embodiment, the identification may embody a number of pictures away from the current picture.
In some embodiments, a tier assertion byte may be configured according to two or more of the embodiments described above. Further, some embodiments may signal information that is additive to, or in lieu of, the information expressed above, including whether the corresponding picture is a forward predicted picture. For instance, in one embodiment, information may be provided (e.g., as an extra byte at an SRAP) that conveys the minimum number of independently decodable pictures per a defined time period (e.g., per second), irrespective of a given trick mode (e.g., playback) speed.
It is noted that “picture” is used throughout this specification to refer to an image portion or complete image from a sequence of pictures that constitutes video, or digital video, in one of a plurality of forms. Throughout this specification, video programs or other references to visual content should be understood to include television programs, movies, or any other signals that convey or define visual content such as, for example, those provided by a personal video camera. Such video programs, when transferred, may include compressed data streams corresponding to an ensemble of one or more sequence of pictures and other elements that include video, audio, and/or other data, multiplexed and packetized into a transport stream, such as, for example, a transport stream compliant to MPEG-2 Transport. Although operations are described herein with respect to a “picture,” any other collection of data may be similarly used such a group of pictures, a block, macroblock, slice or other picture portion, etc.
A video stream may further refer to the compressed digital visual data corresponding to any video service or digital video application, including but not limited to, a video program, a video conferencing or video telephony session, any digital video application in which a video stream is transmitted or received through a communication channel in a network system, or any digital video application in which a video stream is stored in or retrieved from a storage device or memory device.
The disclosed embodiments may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those having ordinary skill in the art.
FIG. 1 is a high-level block diagram depicting an example environment in which an embodiment of systems and methods that implement processing of compressed video and information identifying pictures in respective picture interdependency tiers. In particular, FIG. 1 is a block diagram that depicts an example subscriber television system (STS) 100. In this example, the STS 100 includes a headend 102 and one or more digital home communication terminals (DHCTs), such as DHCT 112, that are coupled via a network 110. In one embodiment, the headend 102 includes a transport stream generator 104. The transport stream generator 104 comprises a compression engine 106 and a packetizer 108, which are collectively configured to generate a portion of a transport stream containing a video stream, such as an AVC stream, and assist information (i.e., related tier information).
In some embodiments, the generation of the transport stream may occur upstream (or downstream, e.g., at a node) of the headend 102. In some embodiments, related tier information may be generated at the DHCT 112, both provided in a transport stream. In some embodiments, both are provided in a program stream. In still some embodiments, transport streams may be generated at the headend 102 and the DHCT 112.
The compression engine 106 (the description of which may also apply in some embodiments to the compression engine 217 of FIG. 2, among others) receives as input a video signal 116, such as a digitized uncompressed video signal or a decompressed video signal. The compression engine 106 outputs a compressed video stream, such as an AVC video stream, and/or other data (e.g., related tier information), wherein compressed pictures of the compressed video stream are provided in the video stream in transmission order. Packetizer 108 packetizes the AVC video stream to output a stream of packets.
The headend 102 and the DHCT 112 cooperate to provide a user with television services including, for example, broadcast video programs, an interactive program guide (IPG), and/or video-on-demand (VOD) presentations, among others. The television services are presented via the display device 114, which is typically a television set that, according to its type, is driven with an interlaced scan video signal or a progressive scan video signal. However, the display device 140 may also be any other device capable of displaying video images including, for example, a computer monitor. Although shown communicating with a display device 140, the DHCT 112 may communicate with other devices that receive, store, and/or process video streams from the DHCT 112, or that provide or transmit video streams or uncompressed video signals to the DHCT 112.
The network 130 may include any suitable medium for communicating video and television service data including, for example, a cable television network or a satellite television network, among others. The headend 102 may include one or more server devices (not shown) for providing video, audio, and other types of media or data to client devices such as, for example, the DHCT 112.
The DHCT 112 is typically situated at a user's residence or place of business and may be a stand-alone unit or integrated into another device such as, for example, a display device 140 or a personal computer (not shown), among other devices. The DHCT 112 receives signals (video, audio and/or other data) including, for example, digital video signals in a compressed representation of a digitized video signal such as, for example, AVC streams modulated on a carrier signal, and/or analog information modulated on a carrier signal, among others, from the headend 102 through the network 130, and provides reverse information to the headend 102 through the network 130.
Although a DHCT is used as an example device throughout the specification, particular embodiments described herein extend to other types of receivers with capabilities to receive and process AVC streams. For instance, particular embodiments are applicable to hand-held receivers and/or mobile receivers that are coupled to a network system via a communication channel. Certain embodiments described herein also extend to network devices (e.g., encoders, switches, etc.) having receive and/or transmit functionality, among other functionality. Particular embodiments are also applicable to any video-services-enabled receiver (VSER) and further applicable to electronic devices such as media players with capabilities to process AVC streams, independent of whether these electronic devices are coupled to a network system. Furthermore, all embodiments, illustrations and examples given herein are intended to be non-limiting, and are provided as an example list among other examples contemplated but not shown.
FIG. 2 is a block diagram of an embodiment of a DHCT 112 as depicted in FIG. 1 and related equipment, in which an embodiment of systems and methods that implement at least in part processing of compressed video and related tier information. It should be understood that the DHCT 112 shown in FIG. 2 is merely illustrative and should not be construed as implying any limitations upon the scope of the disclosure. For example, in some embodiments, the DHCT 112 may have fewer, additional, and/or different components than the components illustrated in FIG. 2. Any of the described subsystems or methods of DHCT 112 and/or stream generator 104 can comprise an ordered listing of executable instructions for implementing logical functions, can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions.
The DHCT 112 preferably includes a communications interface 242 for receiving signals (video, audio and/or other data) from the headend 102 (FIG. 1) through the network 130 (FIG. 1), and provides reverse information to the headend 102.
The DHCT 112 may further include one or more processors (one processor 244 is shown) for controlling operations of the DHCT 112, an output system 248 for driving the television display 140 (FIG. 1), and a tuner system 245 for tuning to a particular television channel and/or frequency and for sending and receiving various types of data to/from the headend 102 (FIG. 1). The DHCT 112 may include, in some embodiments, multiple tuners for receiving downloaded (or transmitted) data. The tuner system 245 can select from a plurality of transmission signals provided by the subscriber television system 100 (FIG. 1). The tuner system 245 enables the DHCT 112 to tune to downstream media and data transmissions, thereby allowing a user to receive digital media content via the subscriber television system 100. In one embodiment, analog TV signals can be received via tuner system 245. The tuner system 245 includes, in one implementation, an out-of-band tuner for bi-directional data communication and one or more tuners (in-band) for receiving television signals. Additionally, a receiver 246 receives externally-generated user inputs or commands from an input device such as, for example, a remote control device (not shown).
The DHCT 112 may include one or more wireless or wired interfaces, also called communication ports or interfaces 274, for receiving and/or transmitting data or video streams to other devices. For instance, the DHCT 112 may feature USB (Universal Serial Bus), Ethernet, IEEE-1394, serial, and/or parallel ports, etc. The DHCT 112 may be connected to a home network or local network via communication interface 274. The DHCT 112 may also include an analog video input port for receiving analog video signals. User input may be provided via an input device such as, for example, a hand-held remote control device or a keyboard.
The DHCT 112 includes at least one storage device 273 for storing video streams received by the DHCT 112. A PVR application 277, in cooperation with operating system 253 and device driver 211, effects among other functions, read and/or write operations to/from the storage device 273. The processor 244 may provide and/or assist in control and program execution for operating system 253, device driver 211, applications (e.g., PVR 277), and data input and output. The processor 244 may further provide and/or assist in receiving and processing related tier information, identifying and extracting of pictures belonging respectively to one or more tiers, identifying and discarding of pictures belonging respectively to one or more tiers, and decoding and outputting a video stream after the extraction or discarding of identified pictures. The processor 244 may further assist or provide related tier information for a received compressed video stream or compressed video stream produced by DHCT 112. Herein, references to write and/or read operations to the storage device 273 can be understood to include operations to the medium or media of the storage device 273. The device driver 211 is generally a software module interfaced with and/or residing in the operating system 253. The device driver 211, under management of the operating system 253, communicates with the storage device controller 279 to provide the operating instructions for the storage device 273. As conventional device drivers and device controllers are well known to those of ordinary skill in the art, further discussion of the detailed working of each will not be described further here.
The storage device 273 may be located internal to the DHCT 112 and coupled to a common bus 205 through a communication interface 275. The communication interface 275 may include an integrated drive electronics (IDE), small computer system interface (SCSI), IEEE-1394 or universal serial bus (USB), among others. Alternatively or additionally, the storage device 273 may be externally connected to the DHCT 112 via a communication port 274. The communication port 274 may be according to the specification, for example, of IEEE-1394, USB, SCSI, or IDE. In one implementation, video streams are received in the DHCT 112 via communications interface 242 and stored in a temporary memory cache (not shown). The temporary memory cache may be a designated section of DRAM 252 or an independent memory attached directly, or as part of a component in the DHCT 112. The temporary cache is implemented and managed to enable media content transfers to the storage device 273. In some implementations, the fast access time and high data transfer rate characteristics of the storage device 273 enable media content to be read from the temporary cache and written to the storage device 273 in a sufficiently fast manner. Multiple simultaneous data transfer operations may be implemented so that while data is being transferred from the temporary cache to the storage device 273, additional data may be received and stored in the temporary cache.
The DHCT 112 includes a signal processing system 214, which comprises a demodulating system 210 and a transport demultiplexing and parsing system 215 (herein demultiplexing system) for processing broadcast and/or on-demand media content and/or data. One or more of the components of the signal processing system 214 can be implemented with software, a combination of software and hardware, or in hardware. The demodulating system 210 comprises functionality for demodulating analog or digital transmission signals.
An encoder or compression engine, as explained above in association with FIG. 1, may reside at the headend 110 (e.g., embodied as compression engine 106), in the DHCT 112 (e.g., embodied as compression engine 217), or elsewhere. The compression engine 217 can receive a digitized uncompressed video signal, such as, for example, one provided by analog video decoder 216, or a decompressed video signal produced by a decompression engine (e.g., decompression engine 222) as a result of decompressing a compressed video signal. In one embodiment, digitized pictures and respective audio output by the analog video decoder 216 are presented at the input of the compression engine 217, which compresses the uncompressed sequence of digitized pictures according to the syntax and semantics of a video compression specification. Thus, the compression engine 217 implements a video compression method or algorithm that corresponds to a respective video compression specification, such as the AVC standard, to provide a video stream. The compression engine 217 may further provide assist information or related tier information for the provided video stream.
The systems and methods disclosed herein are applicable to any video compression method performed according to a video compression specification allowing for at least one type of compressed picture that can depend on the corresponding decompressed version of each of more than one reference picture for its decompression and reconstruction. For example, the compression engine 217 (or 106) may compress the input video according to the specification of the AVC standard and produce an AVC stream containing different types of compressed pictures, some that may have a first compressed portion that depends on a first reference picture for their decompression and reconstruction, and a second compressed portion of the same picture that depends on a second and different reference picture.
In some embodiments, a compression engine with similar compression capabilities, such as one that can produce AVC streams, is connected to the DHCT 112 via communication port 274, for example, as part of a home network. In another embodiment, a compression engine with similar compression capabilities, such as one that can produce AVC streams, may be located at the headend 102 or elsewhere in the network 130. The compression engine in the various embodiments may include capabilities to provide assist information or related tier information for a produced video stream.
Unless otherwise specified, a compression engine as used herein may reside at the headend 102 (e.g., as compression engine 106), in the DHCT 112 (e.g., as compression engine 217), connected to DHCT 112 via communication port 274, or elsewhere. Likewise, video processing devices as used herein may reside at the headend 102, in the DHCT 112, connected to the DHCT 112 via communication port 274, or elsewhere. In one embodiment, the compression engine and video processing device reside at the same location. In another embodiment, they reside at different locations. In yet another embodiment, the compression engine and video processing device are the same device.
The compressed video and audio streams are produced in accordance with the syntax and semantics of a designated audio and video coding method, such as, for example, MPEG-2 or AVC, so that the compressed video and audio streams can be interpreted by the decompression engine 222 for decompression and reconstruction at a future time. Each AVC stream is packetized into transport packets according to the syntax and semantics of transport specification, such as, for example, MPEG-2 transport defined in MPEG-2 systems. Each transport packet contains a header with a unique packet identification code, or PID, associated with the respective AVC stream.
The demultiplexing system 215 can include MPEG-2 transport demultiplexing capabilities. When tuned to carrier frequencies carrying a digital transmission signal, the demultiplexing system 215 enables the separation of packets of data, corresponding to the desired AVC stream, for further processing. Concurrently, the demultiplexing system 215 precludes further processing of packets in the multiplexed transport stream that are irrelevant or not desired, such as packets of data corresponding to other video streams. Parsing capabilities of the demultiplexing system 215 allow for the ingesting by the DHCT 112 of program associated information carried in the transport packets. Parsing capabilities of the demultiplexing system 215 may allow for ingesting by DHCT 112 of assist information, such as, for example, tier assertion byte information, related tier information, or information that assists in trick play operations.
In one embodiment, assist information or related tier information can be provided by specifying explicit information in the private data section of the adaptation field or other fields of a transport stream packet, such as that of MPEG-2 transport. In one embodiment, the signaling and provision of such information is at the video program's multiplex level, or the transport layer (rather than in the video layer—in other words, in the non-video coding layer). The assist information or related tier information can be carried as unencrypted data via, for example, private data carried in the adaptation field of MPEG-2 Transport packets.
For instance, a transport packet structure according to MPEG-2 comprises 188 bytes, and includes a 4-byte header with a unique packet identifier, or PID, that identifies the transport packet's corresponding stream. An optional adaptation field may follow the transport packet's header. The payload containing a portion of the corresponding stream follows the adaptation field, if present in the transport packet. If the adaptation field is not present, the payload follows the transport header. The related tier information corresponding to the compressed pictures in the AVC stream are provided, in one embodiment, in the adaptation field and thus not considered as part of the video layer since the adaptation field is not part of transport packet's payload nor part of the AVC specification but rather part of the syntax and semantics of MPEG-2 Transport in accordance with the MPEG-2 systems standard.
The header of a transport stream may include a sync byte that sets the start of a transport stream packet and allows transmission synchronization. The header of the transport stream may further include a payload unit start indicator that, when set to a certain value (e.g., 1 b in MPEG-2 Transport) in the packets carrying the video stream, indicates that the transport packet's payload begins with the first byte of a packet of a packetized elementary stream (PES). Video streams carried in a PES may be constrained to carrying one compressed picture per PES packet, and that a PES packet commences as the first byte of a transport streams' packet payload. Thus, the payload unit start indicator provisions the identification of the start of each successive picture of the video stream carried in the transport stream. Note that the transport packets carrying the video stream are identified by the parsing capabilities of DHCT 112 (as described above) from program associated information or program specific information (PSI). For instance, in MPEG-2 Transport, program map tables identify the packet identifier (PID) of the video stream in the program map table (PMT), which in turn is identified via the program association table (PAT).
It should be noted that the related tier information is provided in the transport layer unencrypted and enables a video decoder or other video processing device located in a network to determine for a particular application or operation, such as a trick mode operation, which pictures to extract from the video stream, which pictures to discard from the video stream, the identity of the subsequent picture belonging to the same tier level as the picture associated with the tier information, and/or the minimum number of independently decodable pictures per defined time period, without having to parse the compressed video layer or video stream.
The related tier information identifies pictures in the video stream that belong respectively to one or more picture interdependency tiers. This in turn enables the annotation of the successive location of pictures corresponding to respective picture interdependency tiers, when the video program is stored in a hard-drive of the DHCT 112. The video program may be stored as a transport stream. In an alternate embodiment, it may be stored as a program stream. The annotated locations of pictures of the video program may be processed by processor 244 while executing the PVR application 277 to extract the pictures of the video program belonging to the lowest numbered tier (i.e, Tier 1) from a starting point, or to extract additional pictures belonging to each respective successive tier number from the same starting point (i.e., ascending numbered tiers, as described below) to provide a trick mode operation.
One or more flags in a transport packet header or in the adaptation field may identify starting points or random access points that may serve as starting points for tracking related tier information, such as the minimum number of independently decodable pictures per defined time period. For instance, the adaptation field in MPEG-2 Transport packets includes the random access indicator and the elementary stream priority indicator. Some information, such as the tier assertion byte, may be provided in association with every picture.
The components of the signal processing system 214 are generally capable of QAM demodulation, forward error correction, demultiplexing of MPEG-2 transport streams, and parsing of packets and streams. Stream parsing may include parsing of packetized elementary streams or elementary streams. Packet parsing may include parsing and processing of fields that deliver related tier information corresponding to the AVC stream. In some embodiments, parsing performed by signal processing system 214 extracts the related tier information and processor 244 provides processing and interpretation of the related tier information. In yet another embodiment, processor 244 performs parsing, processing, and interpretation of the related tier information. The signal processing system 214 further communicates with the processor 244 via interrupt and messaging capabilities of the DHCT 112. The processor 244 annotates the location of pictures within the video stream or transport stream as well as other pertinent information corresponding to the video stream. Alternatively or additionally, the annotations may be according to or derived from the assist information corresponding to the video stream. The annotations by the processor 244 enable normal playback as well as other playback modes of the stored instance of the video program. Other playback modes, often referred to as “trick modes,” may comprise backward or reverse playback, forward playback, or pause or still. The playback modes may comprise one or more playback speeds other than the normal playback speed. In some embodiments, the assist information is provided to the decompression engine 222 by the processor 244. In another embodiment, the annotations stored in the storage device are provided to the decompression engine 222 by the processor 244 during playback of a trick mode. In yet another embodiment, the annotations are only provided during a trick mode, wherein the processor 244 has programmed the decompression engine 222 to perform trick modes.
Annotations may be simply assist information. Processor 244 can extract pictures from low numbered tiers and/or discard pictures from high numbered tiers as further described below.
The packetized compressed streams can also be outputted by the signal processing system 214 and presented as input to the decompression engine 222 for audio and/or video decompression. The signal processing system 214 may include other components (not shown), including memory, decryptors, samplers, digitizers (e.g., analog-to-digital converters), and multiplexers, among others. The demultiplexing system 215 parses (e.g., reads and interprets) transport packets, and deposits the information corresponding to the assist information corresponding to the AVC stream into DRAM 252.
Upon effecting the demultiplexing and parsing of the transport stream, the processor 244 interprets the data output by the signal processing system 214 and generates ancillary data in the form of a table or data structure (index table 202) comprising the relative or absolute location of the beginning of certain pictures in the compressed video stream in accordance with the assist information corresponding to the video stream. The processor 244 also processes the information corresponding to the assist information to make annotations for PVR operations. The annotations are stored in the storage device by the processor 244. In one embodiment, the assist information comprises of the annotations and it is stored in the hard drive. Such ancillary data is used to facilitate the retrieval of desired video data during future PVR operations.
The demultiplexing system 215 can parse the received transport stream (or the stream generated by the compression engine 217, which in some embodiments may be a program stream) without disturbing its video stream content and deposit the parsed transport stream (or generated program stream) into the DRAM 252. The processor 244 can generate the annotations even if the video program is encrypted because the assist information of the AVC stream is carried unencrypted. The processor 244 causes the transport stream in DRAM 252 to be transferred to a storage device 273. Additional relevant security, authorization and/or encryption information may be stored. Alternatively or additionally, the assist information corresponding to the AVC stream may in the form of a table or data structure comprising the interdependencies among the pictures, as explained further below.
Note that in one embodiment, reference herein to a decoding system comprises decoding functionality and cooperating elements, such as found in the collective functionality of the decompression engine 222, processor 244, signal processing system 214, and memory. In some embodiments, the decoding system can comprise fewer, greater, or different elements. Further, certain system and method embodiments include components from the headend (e.g., the compression engine 106, etc.) and/or components from the DHCT 112, although fewer or greater amount of components may be found in some embodiments.
AVC streams, or other compressed video streams, comprise pictures that may be encoded according to a hierarchy of picture interdependencies, or tiers of picture dependencies. Pictures are associated with hierarchy of tiers based on picture interdependencies. Each compressed picture belongs to at most one tier. Tiers are numbered sequentially starting with tier number 1. Pictures having the lowest tier number do not depend for their decompression and reconstruction on pictures having any higher numbered tier. Thus, assist information is to be provided consistent identification, such that any identified picture corresponding to a tier is not dependent on pictures belonging to any higher numbered tier. Another aspect of the hierarchy of tiers is that decoding of some pictures depends on particular other pictures. Therefore, if one picture serves as a reference picture to other pictures, it can be considered more important than other pictures. In fact, a particular set of pictures can be viewed in a hierarchy of importance, based on picture interdependencies.
One embodiment of a stream generator 104 selects I and IDR-pictures for inclusion in the lowest numbered tier. Another embodiment also includes forward predicted pictures in the lowest numbered tier. An anchor picture can be an I-picture, IDR-picture, or a FPP (forward predicted picture) that depends only on a past reference pictures. In some embodiments, an FPP is an anchor picture if it only depends on the most-recently decoded anchor picture.
Pictures can be categorized as belonging a particular picture interdependency tier or “level” or number, and some embodiments of a stream generator may include assist information for tiers above a certain tier of the hierarchy (e.g., the two lowest numbered tiers). In another embodiment, assist information may be provided only for tiers below a particular tier of the hierarchy (e.g., the two highest tier numbers). In yet another embodiment, assist information may be provided only for high numbered tiers, for low numbered tiers a, or for a combination of both low numbered tiers and high numbered tiers. Assist information may be provided starting from the tier 1, and/or starting from the the highest number tier. A picture's corresponding tier may be understood as a measure of its importance in decoding other pictures—some reference pictures are more important than other reference pictures because their decoded and reconstructed information propagates through more than one level of referencing.
A person of ordinary skill in the art should also recognize that although AVC picture types are used in this disclosure, the systems and methods disclosed herein are applicable to any digital video stream that compresses one picture with reference to another picture or pictures.
An AVC stream is used as an example throughout this specification. However, particular embodiments are also applicable to any compressed video stream compressed according to a video compression specification allowing for: (1) any picture to be compressed by referencing more than one other picture, and/or (2) any compressed picture that does not deterministically convey or imply its actual picture-interdependency characteristics from its corresponding picture-type information in the video stream.
Attention is now directed to FIG. 3, which is a block diagram that illustrates picture interdependencies in an example sequence of compressed pictures provided by the transport stream generator 104. The first row 302 of FIG. 3 comprises the output order of an exemplary GOP, such as received and decoded in decode order 304 (i.e., transmission order) at the decompression engine 222. The GOP comprises a sequence of compressed pictures (designated by picture types, such as I, P, or B). The picture interdependencies are shown, in part, by the arrows above and below each picture (pictures numbered 1-25 at the top of each respective picture). An arrow tail shown at a picture depicts that that picture serves as a reference picture to the other picture where the corresponding arrow head is shown. That is, the arrow conveys that the other picture is predicted from the reference picture. For instance, in FIG. 3, picture 3 is predicted from (and hence depends from) picture 1 and picture 5. Although shown described having a similar pattern of dependency between bounds (e.g., between pictures 1 and 9, and pictures 9 and 17), one having ordinary skill in the art should appreciate that different patterns and/or dependencies can be found from one bounded group to the next.
Beneath row 302 of FIG. 3 is the decode order 304, corresponding to the order in which the pictures are decoded for reconstruction at the decompression engine 222. The transmission order of pictures is different than the output or display order due to the need to have the reference pictures prior to decoding a picture. Note that P pictures can be forward predicted or backwards predicted, and typically, that fact is not evident until the pictures are decoded. For instance, knowledge of the picture type (e.g., as ascertained by a header) does not necessarily convey how prediction is employed or picture interdependencies.
In MPEG-2, discardable pictures can be output immediately (no need to retain), though typically, for implementation reasons, such pictures are temporarily stored for at least a picture period or interval. In AVC streams, even with discardable pictures (i.e, non-reference pictures), there are circumstances where the output of the discardable, decoded picture is delayed and hence retained in the decoded picture buffer (DPB).
Attention is now directed to an explanation of tiers as shown in FIGS. 4 and 5. FIG. 4 illustrates an example of the hierarchy of picture interdependency tiers. A hierarchy of picture interdependency tiers has “T” tiers, T being the highest number tier. A picture in a video stream can only belong to one of the T tiers. However, in some embodiments, the stream generator 104 may opt to not identify the pictures belonging to some middle tiers in its provided tier information. Tier 1 402 comprises of pictures in the video stream that can be decoded independently from pictures in Tiers 2 through T. Tier 1 is the first level of picture extraction. Each successive tier can be decoded independently from pictures in the video stream belonging to higher numbered tiers. For instance, the Tier 2 404 can be decoded independently of pictures belonging to tiers 3 through T. Tier 1 402 represents the first level of picture extractability. Picture extractability, the number of pictures that can be extracted from the video stream, increases from Tier 1 to Tier T, whereas picture discardability, the number of pictures that can be discarded or ignored from the video stream for a trick mode operation, increases from Tier T to Tier 1. Conversely, picture discardability decreases from Tier 1 to Tier T and picture extractability decreases from Tier T to Tier 1. Tier 1 402 comprises the first level of picture extractability and the last level of picture discardability. Tier T 408 comprises of the first level of picture discardability and the last level of picture extractability. Tier—(T-1) 406 comprises the 2nd level of picture discardability and the next to last level of picture extractability, etc.
Accordingly, Tier 1 402 pictures comprise those pictures that are decodable independent of pictures in Tier 2 404 through Tier T 408. Tier 2 404 pictures are pictures that are decodable independent of pictures in Tiers 3 through T 408, and so on.
Pictures in Tier T 408, can be discarded without affecting the decodability of pictures remaining in the video streams that correspond to lower numbered tiers. Tier T 408 pictures are those that are discardable without affecting the decodability of pictures in Tiers 1 402 through (T-1) 406. Tier—(T-1) pictures are those that are discardable without affecting the decodability of the pictures remaining in the video stream that have Tiers 1 402 through T-2 (not shown).
Tier 1 402 comprises of coded pictures (e.g., compressed pictures) in the video stream that when extracted progressively from a starting point in the video stream, such as a random access point, can be decoded and output independently of other coded pictures in the video stream. Tier 2 404 comprises of coded pictures in the video stream that when extracted progressively from the same starting point in the video stream, in concert with the progressive extraction with pictures belonging to Tier 1 402, adds another level of picture extraction. Thus, Tier 1 402 and Tier 2 404 can be decoded and output independently of other coded pictures in the video stream, that is, independent of pictures “determined not to belong to” or “not identified” as Tier 1 402 or Tier 2 404 coded pictures. More generally, for any value of K from 1 to T, pictures belonging to Tiers 1 through K are identified or determined to belong to Tiers 1 through K from received or provided assist information at DHCT 112. Thus, if in a progressive manner “all” the pictures belonging to Tiers 1 through K are: (1) extracted from the video stream from a starting point, and (2) decoded, then the next picture in the video stream with a tier number less than or equal to K can be extracted and decoded because all of the pictures that it depends on for temporal prediction and/or for motion compensation or pictures that it references as reference pictures, or pictures that affect its references, will have been: (1) extracted from the video stream, (2) decoded and (3) available to be referenced.
It is noted that throughout this specification reference to a picture belonging to a tier or a picture in a tier is to be understood as a picture signaled with a tier number or a picture corresponding to a tier.
A Tier-K coded picture in the video stream can be extracted and guaranteed to be decoded into its intended complete and full reconstruction if extraction and decoding of all immediately-preceding Tier-K coded pictures has been performed progressively for a finite amount of time prior to the extraction of that particular Tier-K coded picture. This is because video coding may perform temporal references across GOP boundaries. In one embodiment, a Tier-K coded picture can be extracted and decoded in its intended complete and full reconstruction if all coded pictures belonging to tiers Tier 1 through Tier K have been extracted and decoded progressively since or for at least the last “n” Random Access Points (RAPs) in the video stream immediately prior to the particular Tier-K coded picture. For instance, if a playback mode or trick mode, such as a fast forward, is to commence from a particular or desired location of the video stream, if may be necessary to start decoding at the second RAP (i.e., n=2) prior to the particular location of the video stream. RAPs can be signaled and identified with one or more specific flags in the MPEG-2 Transport level or layer's header and/or the adaptation field header. For instance, specifications such as MPEG-2 Systems provisions indicators in the transport stream, such as a random access point indicator and/or an elementary stream priority indicator, that serve to signal a RAP. In one embodiment, the RAP refers to an access unit (or picture) in the AVC bitstream at which a receiver can start the decoding of the video stream. After the RAP, the video stream includes a sequence parameter set (SPS) and a picture parameter set (PPS) used for decoding the associated picture with the RAP (and pictures thereafter), and any other necessary parameters or set of parameters required to decode and output the pictures of the video stream. The random access points may carry an I picture or an IDR picture. In one embodiment, the GOP, typically an MPEG-2 term, is equivalent to the picture sequences and picture interdependencies found between two or more RAPs.
In one embodiment, start codes may be used to identify where a picture begins. For instance, the beginning of a picture in a PES packet may be aligned with the beginning of the payload of a transport packet. Hence, the beginning of a picture can be identified to enable the extraction (for decoding or discarding) of pictures. In some embodiments, information available at the transport level enables the identification of the beginning of pictures. For instance, for MPEG-2 transport stream packets carrying a video stream, the payload unit start indicator, may identify when the transport stream packet payload begins with the first byte of an MPEG-2 PES packet.
In some embodiments, a Tier-K coded picture can be extracted and decoded in its intended complete and full reconstruction if all coded pictures belonging to tiers Tier 1 through Tier K have been extracted and decoded progressively since or for at least the last “n” beginnings of Group of Pictures (GOPs) in the video stream immediately prior to the particular Tier-K coded picture.
Applying tiers to an example implementation, such as PVR, in an MPEG-2 video stream encoded with a common GOP where the pictures in output order are as follows: I B B P B B P B B P B B P and so on, Tier 1 402, may be sufficient. For example, I pictures may be exclusively utilized in fast forward or rewind operations. But suppose that a finer level of granularity is desired for trick modes, or for improved accuracy in placement or removal of a picture in the trick mode operations. A second and/or third tier may be added to allow for this improved functionality while handling the complexities of AVC. Note that depending on the desired trick mode functionality (e.g., speed, direction, etc.), one embodiment may decode pictures belonging to tier 1 (e.g., 15× trick modes). In some embodiments, decoding may be implemented with pictures from the tiers 1 and 2.
The related tier information and/or the identification of tiers can be implemented according to a variety of approaches, as illustrated in FIG. 5. In some embodiments, a bottom-up approach 502 can be implemented (e.g., via a decompression engine), wherein pictures are identified from the highest numbered tier (i.e., first discardability level pictures) and then proceeding to pictures in one or more of the successive descending numbered tiers of the tier hierarchy. In some embodiments, a top-down approach 504 may be implemented, where pictures are identified from the first extractability level and then to pictures in successive ascending numbered tiers of the tier hierarchy. In some embodiments, a hybrid approach 506 may be implemented, based on a combination of the bottom-up approach 502 and top-down approach 504.
Having provided a background on hierarchical tiers and the properties of the pictures belonging to the respective tiers, attention is now directed to a system and method that provides, receives, and/or processes related tier information. Referring to FIG. 6, shown is one embodiment of example tier information embodied as a tier assertion byte 600 that in one embodiment asserts only one subfield to assert a tier for an associated picture. That is, information in the data field (e.g., tier assertion byte 600) signals a tier. The tier assertion byte 600 is provided for a corresponding picture (e.g., a picture with a first byte of the PES header starting in a first byte of a transport packet payload). Note that a transport packet comprises a payload unit start indicator to enable ease of identifying a corresponding picture. In this example embodiment, the tier assertion byte 600 comprises a data field of subfields (or flags, where flags and subfields are used interchangeably herein) with a flag value of “1” to indicate or signal the asserted tier. Note that the tier assertion byte 600 comprises the potential for assertion of one of a plurality of tiers levels or numbers (T1, T2, T3, etc.), the tier levels ordered (and hence processed) in the direction from the top 602 (T1) to the bottom 604 (T8). In other words, a subfield set at 602 is an indication that the lowest numbered tier is asserted for purposes of processing. Although shown with eight (8) tier levels, it should be appreciated that different numbers of tier levels may be used in some embodiments. Only one subfield is set with a value of “1” (asserted), corresponding to the lowest numbered tier 602. In other words, a picture is only allowed to be associated with a single tier. The tier assertion byte 600 enables the ready identification of pictures that can be decoded (e.g., at a DHCT 112) and/or extracted (e.g., at a network device, such as dropping of pictures) without having to interrogate the video coding layer for such information. Note that, as explained above, decoding of extractable or extracted pictures is feasible from a given starting point, such as a random access point as described above. For instance, by identifying for extraction pictures belonging to the set of lowest tier numbers, the pictures can be extracted sequentially from a RAP and decoded with the guarantee that all picture are capable of being decoded and reconstructed to their respective intended decompressed versions. Other purposes of a tier assertion byte include use for scalability, among other purposes. In one embodiment, the tier assertion byte 600 is provided at every picture, although in some embodiments, may be provided only for pictures having successive low tier numbers, starting with the lowest tier number, and in others, only for pictures having successive high tier numbers, including the highest tier number.
FIG. 7 shows another embodiment of a tier assertion byte 700, where the ordering is from 704 (e.g., T8) to 702 (e.g., T1). In other words, a device (e.g., a codec) may process the tier assertion byte 700 with the expectation, in one embodiment, that the processing is understood to be according to that particular approach (depicted from bottom to top).
In some embodiments, a stream generator 104 may provide a tier assertion byte with a subfield set to provide an indication to a device as to whether the tier assertion byte is to be processed according to a increasing tier number approach from Tier 1 (FIG. 6) or a decreasing tier number approach (FIG. 7). For instance, referring to FIG. 8, shown is one example embodiment of a tier assertion byte 800 that includes tier levels T1, T2, T3, and T4 (with a subfield value for T1) and further provides another subfield 802 with a value of “1” to convey the increasing tier number approach (FIG. 6) is the manner of processing. A value of “0” (or no value in some embodiments) for subfield 802 signals to a device that a decreasing tier number approach (FIG. 7) is the intended manner of processing. In some embodiments, one or more subfields may be ignored. Although illustrated in FIG. 8 as a subfield at the end of the tier assertion byte, or with only four possible tier levels, it should be understood in the context of the present disclosure that other locations for such an indication and/or numbers of tiers may be employed in some embodiments.
FIG. 9 is an example tier assertion byte 900 that includes one or more subfields with values used to identify a next picture belonging to the same tier level. Although shown as an added feature to the features present in the tier assertion byte 800, it should be appreciated that some embodiments may consist of, for instance, a tier assertion byte with plural tier levels according to a particular order (e.g., FIG. 6 or FIG. 7) and the remaining portion of the tier assertion byte dedicated to identifying the next picture, or some variation in between. In other words, the various embodiments of tier assertion bytes disclosed herein may be mixed and matched in some embodiments to provide multiple functionality, or configured in some embodiments to provide a singular functionality corresponding to the disclosed one of the features. In FIG. 9, the tier assertion byte 900 comprises subfields 902 with a value corresponding to either an identification (e.g., via relative location) of a next picture belonging to the same tier, or an indication that a next picture having the same tier number is not identified. Three tier levels are also shown in this example embodiment, but not limited to this quantity. In one embodiment, the identification may be embodied as a number of pictures away from the current picture (e.g., in increments of one or more pictures). If a next picture is not identified, the plural subfields may comprise an appropriate value (e.g., collectively 0000) to indicate to a device that a next picture is not identified in the current tier assertion byte 900. In some embodiments, fewer or greater numbers of flags (e.g., entries) may be dedicated to provide the identification.
FIG. 10 illustrates another embodiment of signaling related tier information that includes a data field that signals whether the corresponding picture issues an MMCO command. An example tier assertion byte 1000 has similar features to those shown for tier assertion byte 900, but with fewer subfields dedicated to the identification of the next picture belonging to the same tier and a subfield 1002 having a value of “1” to signal an assertion of whether an MMCO command is issued. That is, tier assertion byte 1000 comprises subfield 1002 that is asserted (set to a value of “1”) to signal that an MMCO command is issued with the corresponding picture. In other words, the assertion of subfield 1002 results in the corresponding picture issuing an MMCO command, which in some embodiments marks a reference picture as “no longer needed for reference” in accordance to the AVC specification. A value of “0” (or no value in some embodiments) in subfield 1002 indicates that no MMCO command is issued in the corresponding picture.
Note that in some embodiments, the need for an MMCO command may not be needed in the tier assertion byte 1000. In other words, the absence of an MMCO command does not cause a reference picture used by a subsequent picture in the video stream to be bumped from the DPB.
An MMCO can only be issued by a reference picture in accordance with the AVC specification. However, a non-reference picture may enter the DPB if it has output time unequal or after to its decode time. In one embodiment, when a non-reference picture is required to enter the DPB. If an MMCO is needed to be issued concurrently with the decoding of the non-reference picture (i.e., in accordance with the AVC specification to mark at least one reference picture in the DPB as a non-reference picture), although not used as a reference picture, the non-reference picture is signaled as a reference picture to enable the picture to issue the MMCO. In this embodiment, tier information is signaled with the non-reference picture signaled as a reference picture and the related tier information also signals that this picture issues an MMCO.
In some embodiments, other information may be signaled in the transport stream. For instance, in one embodiment, an extra byte may be added (e.g., by stream generator 104) at an SRAP to convey the minimum number of independently decodable pictures per second, irrespective of trick mode speed. For instance, for tiers 1 to K, 3 bits as one example parameter.
In some embodiments, the existence of the assertion tier byte of minimum decodable picture (i.e., the assist information) may be signaled in the transport stream. In other words, a specific message carries the assist information. In some embodiments, an “announcement” may be provided that alerts devices or otherwise makes it known that a specific message carrying assist information or related tier information is present in the transport stream. For instance, the specific message carrying the assist information can be announced with a corresponding specific announcement through the ES information loop of the PMT. Such an announcement serves to simply identify that the transport stream contains the specific message that carries assist information. In one embodiment, the format of the specific message can be via an assigned message identification (e.g., a descriptor tag) and corresponding message length (e.g., a tag length). For instance, a descriptor tag may convey to a decoder that information of a particular type (e.g., corresponding to one of a plurality of tag values) is present in the transport stream
Note that, though the above assist information is explained in the context of an AVC environment, MPEG-2 video, and in particular, MPEG-2 video GOPs are contemplated to be within the scope of the embodiments disclosed herein.
In some embodiments, such as embodiments that extend to the above embodiments discussing the tier assertion byte (or data field), when a picture of interlaced video is coded as two fields in two separate PES packets a bit of the tier assertion byte (or equally tier assertion field), may identify whether the field is a bottom or a top field with two respective values. In some embodiments, yet another field may identify the relative location (e.g., in number of fields away from the current field) of the field that corresponds to the current picture that is being asserted as belonging to a tier.
In some embodiments, the information provided is merely a tier assertion field (or a tier assertion field when more than one byte is used) that includes M bits corresponding to M respective tiers, where M is less than or equal to eight. The M bits are ordered to represent M respective tiers from lowest tier number to highest tier number. Only one of the M bits is allowed to have the first value (equal to “1”) to assert the tier for the corresponding picture, which is the picture in the video stream associated with the location of the assertion flags field in the transport packet. For instance, similar to as described above, the tier assertion field may be provided in the adaptation field of the MPEG-2 Transport packet and the start of the header of the PES packet containing the corresponding picture may be located at the start of the payload of the same transport packet. Thus, a tier may be asserted for a single picture but not all pictures in the video stream need to be asserted. For instance, it may not be desirable or necessary to assert pictures belonging to middle tiers. In some embodiments, the picture associated with a RAP does not need to be asserted with the tier assertion byte since it can be assumed to belong to the lowest numbered tier, Tier 1. In some embodiments, when the tier assertion byte is not required to assert the tier of the RAP picture, the tier assertion byte can represent the number of pictures away from the RAP picture where the next Tier 1 picture is located in the video stream.
In some embodiments, a bit of the tier assertion byte is assigned to convey assertion of increasing tier number signaling or an assertion of decreasing tier number signaling. In other words, a first value (e.g., “1”) asserts signaling that starts with Tier 1 and ascending tier numbers, and a second value an assertion of signaling that starts with the highest tier number and the successive decreasing integers.
In another embodiment, the tier assertion byte contains: (1) the bit to convey ascending or descending tier numbering, the M bits corresponding to M respective tiers (as just described), and the next picture field. The next picture field identifies the location of the picture in the video stream that belongs to the same tier in the hierarchy as the asserted tier for the current picture. If the next picture field equals zero, it does not identify the location of a picture. A non-zero value in the next picture field corresponds to the number of pictures in the video stream from the current picture, in transmission order, and, thus, identifies the next picture belonging to the same tier as the current picture.
In some embodiments, such as embodiments that extend to the above embodiments discussing the tier assertion byte (or field), when a picture of interlaced video is coded as two fields in two separate PES packets a bit of the tier assertion byte (or equally tier assertion field), may identify whether the field is a bottom or a top field with two respective values. In some embodiments, yet another field may identify the relative location (e.g., in number of fields away from the current field) of the field that corresponds to the current picture that is being asserted as belonging to a tier.
FIGS. 11A-11C provides an illustration of one example embodiment for DPB management and MMCO marking. An assumption is made that the process illustrated in FIGS. 11A-11C are based on a fixed frame rate (e.g., no gaps as specified in AVC) and valid for MPEG-2 Transport (e.g., ISO 13818-1 2007, which includes AVC transport), and with compliance of PTS and DTS as required by ISO 13818-1: 2007 (MPEG-2 Systems). As shown in FIG. 11A, a current picture is removed from the compressed picture buffer at tr (1102). At (1104), a decision is made whether the picture is an IDR picture. If so, the IDR picture is processed (1106) and processing returns to (1102). If not (at 1104), processing proceeds to the current picture decode block 1124, and in particular, an decoding of the current picture at tr (1108). A decision is made whether the decoded picture needs to be output in that picture output interval (i.e, whether tr=tout) (1110), and if not, the current picture is marked as “needed for output” (1112), and processing proceeds to picture output block 1126, where a picture to be output is found in the DPB with a tout(m)=tr (114) and a picture is output from the DPB (1116)). If so (yes at 1110), the current picture is output (1116).
From the output (1116), processing proceeds to a decision as to whether to repeat output of picture (or part) per pic_structure (1118), and if so, output (1116), otherwise proceed to output picture marking block (1128) to mark the current picture as “not needed for output” (1112). From there, processing proceeds to a decision (1122) as to whether the current picture is a reference picture (e.g., is nal_ref_idc equal to zero or not equal to zero) and if not, proceed to FIG. 11C (1150), otherwise proceed to FIG. 11B (1130).
Proceeding to FIG. 11B (from 1122 in FIG. 11A), at reference picture marking block 1148, the reference picture marking process according to 8.2.5 (H.264) is invoked (1130) and a decision is made whether an MMCO (1132). If not, a sliding window process is implemented according to 8.2.5.3 (1134) and a decision is made (1136) as to whether the number of reference pictures in the DPB is equal to the num_ref_frames (i.e., maximum number of reference pictures allowed). If so, the earliest decoded reference picture in the DPB is marked as “unused for reference” (1138) and the current picture is marked as “used for short term reference” (1140) and processing proceeds to FIG. 11C (1150). If yes (to 1132), then MMCO is issued according to 8.2.5.4 to mark reference pictures in the DPB (1142) and determine if the MMCO has a value of 5 (1144) (if so, processing continues to FIG. 11A, 1102—equal to IDR processing with no_output_of_prior_pics_flag=0). If not (at 1144), then another determination (1146) is made as to whether MMCO has a value of 6 (if so, proceed to FIG. 11C, 1150). If not (at 1146), processing proceeds to 1140 and then FIG. 11C (1150) as explained above.
Referring to FIG. 11C, input to the removal of pictures from the DPB block 1162 is from sources 1146 (FIG. 11B), 1122 (FIG. 11A), and/or 1140 (FIG. 11B). At 1150, a decision is made as to whether, for a set of M pictures in the DPB, is a picture “unused for reference” or is it a “non-reference picture” and is the picture output time less than tr of the current picture. If so, remove the picture from the DPB (1152) and determine whether this has been done for all pictures in the DPB (1154) (if not, return to 1150). If the decision is no (at 1150), proceed to 1154 as explained above. If the outcome to 1154 is yes, proceed to a decision (1156) as to whether the DPB is full. If yes, then an error processing is invoked (1158—reached DPB bumping process of HRD—inconsistent with PTS). If not, processing proceeds to insertion of current picture in DPB block 1154, where the current picture is inserted in the DPB (1160) and processing returns to the start (at FIG. 11A).
Having described various embodiments that provide, receive, and/or process information conveyed in a transport stream, it should be appreciated that one method embodiment, referred to as method 1200 and illustrated in FIG. 12, comprises effecting the issuance by a first picture a memory management control operation (MMCO) during a first playback mode of a first video stream, the first picture processed but not decoded (1202); and processing and decoding the first picture of the first video stream during a second playback mode, wherein decompressing the first video stream the MMCO issued by the first picture affects referencing of a second picture that is a reference picture to a third picture, the first picture different than the second picture and the third picture, the second picture different than the first and the third picture (1204).
Another method embodiment, referred to herein as method 1300 and illustrated in FIG. 13, comprises providing tier information corresponding to a picture, the tier information provided in an adaptation field of a transport packet, the transport packet comprising a first byte of a header of a packetized elementary stream (PES) containing the picture (1302); and providing the first transport packet (1304).
Any process descriptions or blocks in flow diagrams should be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process, and alternate implementations are included within the scope of the present disclosure in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art. In some embodiments, additional steps may be implemented. Further, the methods described in the flow diagrams of FIGS. 11A-13 are not limited to the architectures or devices illustrated in FIGS. 1-2.
It should be emphasized that the above-described embodiments of the present disclosure are merely possible non-limiting examples of implementations, merely setting forth a clear understanding of the principles of the disclosed systems and method embodiments. Many variations and modifications may be made to the above-described embodiments, and all such modifications and variations are intended to be included herein within the scope of the disclosure and protected by the following claims.

## Claims

1. A method, comprising:
receiving an encoded video stream with a first picture, a second picture, and a third picture, wherein the encoded first picture includes a memory management control operation (MMCO), wherein decoding of the third picture depends on processing the MMCO;
effecting the issuance by the first picture the MMCO during a first playback mode, the first picture processed but not decoded, wherein the encoded first picture is a non-reference picture, the first picture containing a first byte conveying the minimum number of independently decodable pictures per a defined time period, irrespective of a given trick mode speed;
signal the first picture as a reference picture;
effect issuance of the MMCO command with the first picture marked as a reference picture; and
processing and decoding the first picture during a second playback mode, wherein the MMCO issued by the first picture affects referencing of the second picture by the third picture, the first picture different than the second picture and the third picture, the second picture different than the third picture, wherein the third picture comprises a lower numbered tier than the second picture, wherein at least three tiers are available and wherein at least a fourth picture has the same tier number as the second picture.

2. The method of claim 1, wherein the second picture comprises a reference picture to the third picture.

3. The method of claim 1, wherein the first playback mode comprises a trick mode.

4. The method of claim 1, wherein the second playback mode comprises a normal playback mode.

5. The method of claim 1, further comprising referencing by the third picture the first picture, the third picture comprising a tier number no lower than the tier number of the first picture.

6. A method, comprising: providing a picture containing a first byte conveying the minimum number of independently decodable pictures per a defined time period, irrespective of a given trick mode speed; providing tier information corresponding to the picture, the tier information provided in an adaptation field of a transport packet, the transport packet comprising a first byte of a header of a packetized elementary stream (PES) containing the picture, the tier information indicating a plurality of tiers, wherein the tier information is configured to signal a number of independently decodable pictures per second for a defined trick mode speed; and providing the first transport packet, where providing the first transport packet will effect issuance of a MMCO command with a first picture marked as a reference picture, wherein the MMCO issued by the first picture affects referencing of a second picture by a third picture, the first picture different than the second picture and the third picture.

7. The method of claim 6, wherein a first byte of a payload of the transport packet corresponds to the first byte of the header of the PES packet.

8. The method of claim 6, wherein a first byte of a payload of the transport packet corresponds to a first byte corresponding to the picture.

9. The method of claim 6, further comprising providing a pointer to a next picture in a compressed video stream, the next picture and the picture comprising a same tier number.

10. A headend system, comprising: a processor configured to provide a data field in an adaptation field of a transport packet, where the transport packet will effect issuance of a MMCO command with a first picture marked as a reference picture, wherein the MMCO issued by the first picture affects referencing of a second picture by a third picture, the first picture different than the second picture and the third picture, the data field further comprising: a first information configured to signal one of a plurality of non-unique tier numbers corresponding to a first picture; a second information configured to signal whether the first picture issues a memory management control operation (MMCO) command, wherein the first picture contains a first byte conveying the minimum number of independently decodable pictures per a defined time period, irrespective of a given trick mode speed; and a third information configured to signal whether the first information is ordered according to an increasing or decreasing order.

11. The system of claim 10, wherein the first information is ordered based on increasing or decreasing tier number.

12. The system of claim 10, wherein the data field further comprises a fourth information configured to signal an identification of a subsequent picture corresponding to a same tier number as the tier number of the picture.

13. The system of claim 12, wherein the identification comprises a location relative to the picture.

14. The system of claim 12, wherein the fourth information is further configured to signal an absence of an identification of the subsequent picture.

15. The system of claim 10, wherein the data field further comprises a fifth information configured to signal an identification of a forward predicted picture.

16. The system of claim 10, wherein the processor is further configured to: signal a non-reference picture as a reference picture; and effect issuance of an MMCO command with the non-reference picture marked as a reference picture.

17. The system of claim 10, wherein the data field further comprises a sixth information configured to signal a number of independently decodable pictures per second for a defined trick mode speed.

18. The system of claim 17, wherein the data field further comprises a parameter corresponding to at least one trick mode speed.