US8264960B2 - Method and system for sharing AV/record resources in a programmable transport demultiplexer and PVR engine - Google Patents
Method and system for sharing AV/record resources in a programmable transport demultiplexer and PVR engine Download PDFInfo
- Publication number
- US8264960B2 US8264960B2 US11/385,468 US38546806A US8264960B2 US 8264960 B2 US8264960 B2 US 8264960B2 US 38546806 A US38546806 A US 38546806A US 8264960 B2 US8264960 B2 US 8264960B2
- Authority
- US
- United States
- Prior art keywords
- data packet
- packet
- data
- record
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000006870 function Effects 0.000 claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 40
- 230000008569 process Effects 0.000 abstract description 19
- 239000000872 buffer Substances 0.000 description 24
- 238000010586 diagram Methods 0.000 description 12
- 238000013459 approach Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000001824 photoionisation detection Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2389—Multiplex stream processing, e.g. multiplex stream encrypting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/4147—PVR [Personal Video Recorder]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4341—Demultiplexing of audio and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4347—Demultiplexing of several video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4385—Multiplex stream processing, e.g. multiplex stream decrypting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/7921—Processing of colour television signals in connection with recording for more than one processing mode
Definitions
- Certain embodiments of the present invention relate to processing video and audio signals. More specifically, certain embodiments of the invention relate to a method and system for sharing AV/record resources in a programmable transport demultiplexer and personal video recorder (PVR) engine.
- PVR personal video recorder
- Audio and video recording engines and transport demultiplexers may be implemented utilizing separate hardware devices. This approach may result in costly implementations. In this regard, more efficient devices may be necessary that allow multimedia systems to meet the increasing requirements for advanced applications and functionalities with cost effective and/or simplified implementations.
- all-hardware designs When using all-hardware designs for transport demultiplexers and record engines, at least two issues may arise. First, the use of all-hardware designs makes flexibility of the system in supporting the numerous audio and video formats difficult. An all-hardware design may support a small number of fixed formats, and can fail in providing adequate support to other formats that can be introduced to the system. Additionally, the use of separate, all-hardware designs can be inefficient, especially in terms of chip area, where the use of two completely separate all-hardware designs occupy a large chip-area.
- a system and/or method is provided for sharing AV/record resources in a programmable transport/demultiplexer and personal video recorder (PVR) engine, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
- PVR personal video recorder
- FIG. 1 illustrates a block diagram of an exemplary architecture of a RAVE, in accordance with an embodiment of the present invention.
- FIG. 2 illustrates a flow diagram of an exemplary method of a programmable transport demultiplexer using a double-buffered approach, in accordance with an embodiment of the present invention.
- FIG. 3A illustrates a block diagram of an exemplary hardware architecture of a RAVE, in accordance with an embodiment of the present invention.
- FIG. 3B illustrates a flow diagram of exemplary processes of firmware in a RAVE, in accordance with an embodiment of the present invention.
- FIG. 4 illustrates a block diagram of an exemplary structure of merged firmware and a portion of hardware assist, in accordance with an embodiment of the present invention.
- FIG. 5 illustrates a block diagram of an exemplary circuit for decoding compressed video data, in accordance with an embodiment of the present invention.
- Certain embodiments of the present invention relate to processing video and audio signals. More specifically, certain embodiments of the invention relate to a method and system for sharing AV/record resources in a programmable transport/demultiplexer and personal video recorder (PVR) engine.
- PVR personal video recorder
- Modern transport demultiplexers may be required to perform a wide variety of tasks to be able to deal with the different input formats. Modern transport demultiplexers may, therefore, handle a large number of parsing formats, demultiplex several sub-streams from within a large number of multiplexed streams, and provide a host of other functions.
- Such functions may include, for example, receiving several streams which have been multiplexed together, separating out whole streams or sub-streams at user discretion; parsing input formats such as, for example, MPEG Transport, Directv Transport, raw PES, DVD, raw ES, and a variety of other formats; recognizing start code or frame synchronization patterns from several different ES layers; assisting in the frame synchronization for video and audio; providing ancillary information about the incoming data to assist the downstream audio or video decoders; providing timestamp management support; providing methods for synchronizing commands from software with the data stream; providing flexibility to support new, as-yet unanticipated formats, and being able to do all of the aforementioned functions at high speeds such as, for example, 200+ Mbits/sec.
- a fast yet programmable solution may be desirable.
- Such a solution may utilize a double buffer and/or a hardware assist and may be implemented in a
- a RAVE may support multiple decoders that support audio and/or video decoding.
- the RAVE may also provide PVR functions such as, for example, data record, while simultaneously supplying ancillary information to the host software, which may enable it to manage PVR playback and storage to disk. Therefore, the RAVE may combine record functionalities and the audio/video decoding functions.
- the RAVE may be capable of processing the transport header associated with each of the video decoding, audio decoding, and the record functions.
- the RAVE may be designed such that it may provide flexibility to allow for subsequent algorithmic changes as may be needed by data format changes, for example. Additionally, the RAVE may maintain a high throughput.
- FIG. 1 illustrates a block diagram of an exemplary architecture of a RAVE 100 , in accordance with an embodiment of the present invention.
- the RAVE 100 may comprise hardware assist architecture 105 , a processor programmed with firmware 110 , and a memory 150 .
- the input 125 may comprise transport data, where the transport data may comprise packets of video, audio, and record data in any number of formats.
- the input 125 may also comprise fixed-length sections of non-transport data for non-Record applications.
- the hardware assist architecture 105 may then perform some processes and pass processed data to the processor programmed with firmware 110 , either directly via data path 130 or indirectly via the buffer block 150 . A portion of the processed data may be passed from the hardware assist architecture 105 via data path 140 to the memory 150 , which may then be accessed by the processor programmed with firmware 110 via data path 145 .
- the hardware assist architecture 105 may process functions that may be less likely to change such as, for example, MPEG parsing, and the processor programmed with firmware 110 may make most or all of the final decisions of the RAVE 100 .
- Functions that may change as a result of, for example, a new data format may be processed mainly by the processor programmed with firmware 110 with some processing that may be done by the hardware assist architecture 105 .
- a current packet, packet A may come into the RAVE 100 via input 125 .
- the hardware assist architecture 105 may then process the packet A.
- the hardware assist architecture 105 may perform a portion of the functions associated with the processing of the packet A, and may retrieve information associated with the packet A as well.
- the hardware assist architecture 105 may then set up the hardware assist fields and may write retrieved information to a location in the memory 150 such as, for example, a buffer 115 .
- the hardware assist fields may comprise, for example, address of compare pattern, compare patterns, start/end of PES headers, number of ES bytes in the packet, number of payload bytes in the packet, start of payload, presence of packet errors, type of packet (record or audio/video), etc.
- the processor programmed with firmware 110 may then access and begin processing the data associated with the packet A from the buffer 115 , and output the processed data A. Meanwhile, during the time that the processor programmed with firmware 110 is processing the previously received packet A, the hardware assist architecture 105 may process the next packet B, and write the associated retrieved data in another location in the memory 150 such as, for example, a buffer 120 . The processor programmed with firmware 110 may then begin processing the most recent packet B from the buffer 120 , and the hardware assist architecture 105 may process the next packet C and write the associated information in the buffer 115 , effectively replacing the data associated with the packet A previously processed by the processor programmed with firmware 110 , since it had already been processed and output.
- FIG. 2 illustrates a flow diagram of an exemplary method of a programmable transport demultiplexer using a double-buffered approach, in accordance with an embodiment of the present invention.
- the programmable transport demultiplexer may be utilized in the RAVE 100 of FIG. 1 , which may process packets.
- the RAVE may comprise hardware architecture for at least partially processing the packets and a processor programmed with firmware for executing instructions that may cause the processor to determine whether the packets are associated with an audio/video function or a record function.
- a packet may be received by the RAVE where initially a program may be executed to determine whether the packet is associated with an audio/video function or a record function.
- the packet may then be at least partially processed by the hardware assist architecture at a next block 210 .
- the hardware assist architecture may retrieve from the packet information to set up hardware assist fields, where setting up the hardware assist fields may vary based on the function associated with the received packet, i.e., audio/video or record.
- the hardware assist architecture may also retrieve from the packet information that may be utilized by the processor programmed with firmware and write such information to a first buffer.
- the processor programmed with firmware may access the information from the first buffer and process the data from the packet.
- the next packet may be received at block 205 , and the hardware assist architecture may retrieve from the next packet information to set up hardware assist fields at block 210 and may also retrieve from the packet information that may be utilized by the processor programmed with firmware and will write such information to a second buffer.
- the result of the firmware processing may then be output at a block 220 .
- the processor programmed with firmware at the next block 215 , may access the data from the second buffer to further process the packet, while the hardware assist architecture retrieves information from the next packet and writes to the first buffer, which may contain the data associated with the first packet, effectively overwriting the data from the processor programmed with firmware processing of the packet two packets earlier, which had already been output.
- the method may continue where the hardware may process received packets while the processor programmed with firmware may be processing the previous packet.
- FIG. 3A illustrates a block diagram of exemplary hardware assist architecture 300 of a RAVE, in accordance with an embodiment of the present invention.
- the hardware assist architecture 305 may be, for example, the hardware assist architecture 105 as described with reference to FIG. 1 .
- the hardware assist architecture 305 may receive a current packet, via input 325 .
- the hardware assist architecture 305 may comprise, for example, logic units 303 , 307 , and 309 .
- the logic unit 303 may receive the received packet and may detect the type of the packet. The type of packet may be detected on a higher level such as, for example, whether the data is record data or audio/video data, or on a lower level such as, for example, in the case of video, what the video encoding format is, i.e. MPEG-1, MPEG-2, MPEG-4, etc.
- the hardware assist architecture 305 may then process the packet. Based on the determined format, logic units 307 and 309 of the hardware assist architecture 305 may set up the hardware assist fields in a memory 350 . The fields may be set up such that they may be generic and independent of the type of data in the packet. The logic units 307 and 309 may also retrieve information associated with the packet. The retrieved information may then be written to the memory 350 . The retrieved information may be written in a generic way that may be independent of the format or type of data of the packet. As a result, the RAVE may be capable of processing different types of record and audio/video data and the processing by the processor programmed with firmware may not be influenced by the format of the data of the packet.
- the hardware assist fields may comprise, for example, address of compare pattern, compare patterns, start/end of PES headers, number of ES bytes in the packet, number of payload bytes in the packet, start of payload, presence of packet errors, type of packet (record or audio/video), etc.
- FIG. 3B illustrates a flow diagram of exemplary processes of firmware in a RAVE, in accordance with an embodiment of the present invention.
- the processor programmed with firmware 310 may be, for example, the processor programmed with firmware 110 as described with reference to FIG. 1 .
- the hardware assist architecture 305 may complete processing of a packet, by setting up the hardware assist fields and other information relevant to the processor programmed with firmware processing of the packet.
- the hardware assist architecture 305 may write the hardware assist fields and other information to the memory 350 .
- the processor programmed with firmware 310 may then access and begin processing the data associated with the packet from the memory 350 .
- the processor programmed with firmware 310 may not distinguish the format or data type associated with the packet, since the hardware assist fields may be generic and set up by the hardware assist architecture 305 as to be independent of the format of the input packet.
- the processor programmed with firmware 310 may perform functions associated with processing the packets such as, for example, record processes, audio decoding, video decoding, etc. While the processor programmed with firmware 310 may be processing data associated with a first packet, the hardware 305 may process the next incoming packet and write the associated retrieved data in another location in the memory 350 .
- the processor programmed with firmware 310 may comprise functions 312 for processing record data, functions 314 for processing audio data, functions 316 for processing video data, and other functions 318 that may be processed in association with any packet.
- the processor programmed with firmware 310 may output the processed data 335 , which may be retrieved by the appropriate circuitry for further processing or display.
- the RAVE 100 merges record functions and audio/video functions using the hardware assist architecture 105 and processor programmed with firmware 110 . Therefore the RAVE 100 may provide a cost-effective, fast, and programmable solution. To provide a more efficient and cost-effective solution, the processing done by the hardware assist architecture 105 and the processor programmed with firmware 110 may be shared between the record functions and audio/video functions.
- the hardware assist architecture 105 may be used to provide information to the processor programmed with firmware 110 , which may provide most of the final processing and decision-making.
- the hardware assist architecture 105 may be designed such that a maximum amount of functionality common to both record functions and audio/video functions may be identified and processed by a common set of hardware assist architecture 105 , while minimizing the amount of function-specific portion of hardware assist architecture 105 .
- the hardware assist fields may be set up for the data in the received packets, such that the same portion of the hardware assist architecture 105 may be used for common fields.
- Some of the hardware assist fields may be configurable by the RAVE such that despite possible differences between the fields for the audio/video functions and the fields for the record functions, the fields may be configured to “look” the same. This is possible because most of these fields are common for both the audio/video functions and record functions.
- the output format for audio/video channels is usually ES, while for record it is usually transport.
- a common set of configurable fields may be used to indicate output format, regardless of whether the context is audio/video or record. As a result, if it is ever desired to record in ES or send data to decoders in transport format, the function is available.
- the hardware assist architecture 105 may eliminate functionality that would otherwise have to check the type of input (audio/video or record) then decide the output format (ES or transport). Instead, whatever format the input is, the output may be configured as “output” without having to use specific configuration and thus eliminating the need for hardware for making a decision.
- output format may be decided purely on the basis of the context.
- the hardware that outputs the final processed data after being processed by the processor programmed with firmware 110 may be selected to output ES or transport based on the configuration, therefore, one hardware engine may be used instead of two.
- the same methodology may be utilized in configuring other functions in the hardware assist architecture 105 .
- Most functions may be implemented as to depend as little as possible on whether the input is audio/video or record data; as a result there may be minimal checking to see whether a context is audio/video or record before allowing a certain function.
- the hardware may be designed to allow all possible modes, and the selection of functionality may be performed purely by context, and most hardware assist architecture 105 blocks and logic may be useable by both audio/video functions and record functions. As a result, the hardware may be slightly bigger than would be required for only one of the functions, but much smaller than would be required if both functions were implemented separately. Therefore, the RAVE 100 provides a cost-effective combination of audio/video and record functions, while providing programmability for both functions as well.
- the processor programmed with firmware 110 may be utilized to set up the hardware assist architecture 105 . Since the hardware assist architecture 105 functionalities are shared for the audio/video functions and the record functions, the processor programmed with firmware 110 may set up the hardware logic differently based on the functions associated with a receive packet.
- one such shared function in hardware may be stream parsing.
- the stream parsing function for audio/video provides a different output from the stream parsing function for a record.
- the stream parsing function outputs ES data
- the stream parsing output transport data.
- the processor programmed with firmware 110 may set up certain signals and configure certain parameters of the stream parsing function in the hardware assist architecture 105 depending on the format of the stream such that the stream may be parsed correctly, yielding the appropriate output data format.
- Another example may be a function that examines data to look for the occurrence of a particular pattern.
- a pattern in the audio/video stream may be used to assist the downstream decoders with frame synchronization.
- a pattern in the record stream may be used by software to determine where a frame starts.
- the two patterns may be very different, however, the hardware assist function that looks for the patterns may be in essence very similar.
- the processor programmed with firmware may then set up the parameters of the function that looks for a pattern within a stream depending on the format of the stream, and therefore, the same hardware function may be used with the two streams.
- the hardware assist architecture may send to the processor programmed with firmware, along with the parsed packet, information regarding where the boundaries of the packets are.
- the processor programmed with firmware then may be able to look through the packet to determine how to configure parameters for other functions to be executed by the hardware assist architecture.
- FIG. 4 illustrates a block diagram of an exemplary structure of merged firmware and a portion of hardware assist, in accordance with an embodiment of the present invention.
- the hardware may send it to the processor programmed with firmware.
- the parsed packet may then be sent to the audio/video portion of the processor programmed with firmware 405 if the received packet is an audio/video data packet, and to the record portion of the processor programmed with firmware 410 if the received packet is a record data packet.
- the audio/video portion of the processor programmed with firmware 405 and the record portion of the processor programmed with firmware 410 may then provide different components of the hardware assist architecture with data extracted from the parsed packets for further hardware processing.
- Some of the hardware assist architecture components may be, for example, a data DMA engine 415 , an ITB DMA engine 420 , and a pointer block 425 .
- the data DMA engine 415 may, depending on the format of the packet data, output a whole packet for record or ES data for audio/video.
- the data DMA engine 415 may send its output to a context data buffer, which may be part of the hardware assist architecture. Since the ES data is a subset of the packet, the hardware assist architecture may indicate where in the packet the DMA engine 415 may locate the needed ES data, based on the desired function.
- the audio/video portion of the processor programmed with firmware 405 and the record portion of the processor programmed with firmware 410 may provide the data DMA engine 415 with offsets associated with the packets. For example, when doing PVR, the record offsets may relate to the beginning of the record session, and in audio/video, the offsets may indicate the address locations of ES offsets with the audio/video packet.
- the index table buffer (ITB) DMA engine 420 may comprise a set of functions.
- the ITB may be a buffer of descriptors that point to various things such as, for example, patterns found by generic comparators in the hardware assist architecture. Other things the buffer of descriptors may point to may be, for example, audio/video-specific descriptors, or record-specific descriptors.
- the ITB buffer may hold address fields, which may, for example, point to an ES address for an audio/video packet. Whereas for a record packet the ITB buffer may hold the number of bytes recorded up to the location indicated by the buffer index. These values may be calculated by the hardware with control provided by the processor programmed with firmware.
- the ITB DMA engine 420 may have a host of HW assist functions, which assist the firmware in producing accurate ITB data for both the audio/video and Record functions. These functions may have different ITB formats, but a common set of HW assist may be used to assist the firmware in generating both types of ITB data.
- the pointer block 425 may generate pointers that point to addresses in memory that the downstream client may need to read for later processes such as, for example, decoding for audio/video data or playback software for record data. For each context, whether it is an audio/video context or a record context, a set of buffers may be used based on which the pointer block 425 may generate the appropriate pointers.
- a determination may be made as to whether the context is audio/video or record.
- One exemplary way of determining the context of a stream may be by mapping the PID channel number associated with the packet to a context in a PID table.
- the packet may then go through a parsing block, which may extract information about the packet.
- the extracted information may comprise the hardware assist fields discussed hereinabove.
- the extracted information may then be written to memory, which may be accessible by the processor programmed with firmware.
- the packet data itself may also be written to the memory.
- the processor programmed with firmware may then begin accessing the packet and the associated information extracted from the packet by the hardware assist architecture.
- the processor programmed with firmware may also receive an indication of whether the packet is audio/video or record. Depending on the type of the packet, the processing may jump to the appropriate portion of the processor programmed with firmware to begin the processing associated with the packet. Using the hardware assist fields, the processor programmed with firmware may set up the data needed to configure the data DMA engine 415 , the ITB to configure the ITB DMA engine 420 , and the data needed to configure the pointer block 425 . The setup of the different blocks may be similar for audio/video data as for record data, and the difference may be in the location where the processor programmed with firmware may look for the needed data to set up the different blocks.
- FIG. 5 illustrates a block diagram of an exemplary circuit for decoding compressed video data, in accordance with an embodiment of the present invention.
- Data may be received and stored in a presentation buffer 503 within a Synchronous Dynamic Random Access Memory (SDRAM) 501 .
- SDRAM Synchronous Dynamic Random Access Memory
- the data may be received from either a communication channel or from a local memory, such as, for example, a hard disc or a DVD.
- the data output from the presentation buffer 503 may then be passed to a data transport processor 505 .
- the data transport processor 505 may demultiplex the transport stream into packetized elementary stream constituents, and pass the audio transport stream to an audio decoder 515 and the video transport stream to a video transport processor 507 and then to a video decoder 509 , for example.
- the audio data may then be sent to the output blocks, and the video may be sent to a display engine.
- Record data may be sent to Record functions such as, for example, the Record software 516 .
- the RAVE may be, for example, a data transport processor such as, the data transport processor 505 .
- the transport stream may comprise record data, and audio/video data.
- the hardware assist fields may be set up such that they may be generic and independent of the type of data in the packet.
- the RAVE may be capable of processing different types of record and audio/video data and the processing by the processor programmed with firmware may not be influenced by the format of the data of the packet, and as a result the same code in the processor programmed with firmware may be used to process data regardless of the format of the associated packet.
- the present invention may be realized in hardware, software, or a combination thereof.
- the present invention may be realized in a centralized fashion in at least one computer system, or in a distributed fashion where different elements may be spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein may be suited.
- a typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, may control the computer system such that it carries out the methods described herein.
- the present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods.
- Program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform particular functions either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
Description
-
- 1) Input format: the record functions and audio/video functions may accept different types of inputs. For example, the audio/video functions may accept transport, PES, ES, or program stream formatted data, whereas the record functions may accept only transport data as input.
- 2) Output format: generally audio/video functions output ES data, while record functions output transport data
- 3) Output stream: generally when audio/video data is sent to a decoder (audio or video), one stream may be sent at a time, whereas for record, multiple PIDs may be put in the same buffer
- 4) Channels: states may be stored independently for each audio/video channel, while for record channels, states may be stored for multiple PID channels within the output buffer
- 5) Output data encryption: audio/video data outputs generally may not be encrypted, while for record channels the output data may be encrypted
- 6) The audio/video transport demultiplexer may assist downstream decoders in acquiring frame sync
- 7) In the system as a whole, the same data may need to go to an audio/video channel and a record channel simultaneously
Claims (27)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/385,468 US8264960B2 (en) | 2005-05-31 | 2006-03-21 | Method and system for sharing AV/record resources in a programmable transport demultiplexer and PVR engine |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68598605P | 2005-05-31 | 2005-05-31 | |
US11/385,468 US8264960B2 (en) | 2005-05-31 | 2006-03-21 | Method and system for sharing AV/record resources in a programmable transport demultiplexer and PVR engine |
Publications (2)
Publication Number | Publication Date |
---|---|
US20060268354A1 US20060268354A1 (en) | 2006-11-30 |
US8264960B2 true US8264960B2 (en) | 2012-09-11 |
Family
ID=37462991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/385,468 Active 2029-10-27 US8264960B2 (en) | 2005-05-31 | 2006-03-21 | Method and system for sharing AV/record resources in a programmable transport demultiplexer and PVR engine |
Country Status (1)
Country | Link |
---|---|
US (1) | US8264960B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1989880A1 (en) * | 2006-02-24 | 2008-11-12 | Koninklijke Philips Electronics N.V. | A device and a method for sharing resources in a network of peers |
WO2014186934A1 (en) | 2013-05-20 | 2014-11-27 | Mediatek Singapore Pte. Ltd. | Data stream processing apparatus |
JP6432180B2 (en) * | 2014-06-26 | 2018-12-05 | ソニー株式会社 | Decoding apparatus and method, and program |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4473904A (en) | 1978-12-11 | 1984-09-25 | Hitachi, Ltd. | Speech information transmission method and system |
US5559999A (en) * | 1994-09-09 | 1996-09-24 | Lsi Logic Corporation | MPEG decoding system including tag list for associating presentation time stamps with encoded data units |
US5638370A (en) | 1994-12-28 | 1997-06-10 | Intel Corporation | Status bit controlled HDLC accelerator |
US5828416A (en) * | 1996-03-29 | 1998-10-27 | Matsushita Electric Corporation Of America | System and method for interfacing a transport decoder to a elementary stream video decorder |
US5898695A (en) * | 1995-03-29 | 1999-04-27 | Hitachi, Ltd. | Decoder for compressed and multiplexed video and audio data |
US6124866A (en) * | 1989-05-10 | 2000-09-26 | Mitsubishi Denki Kabushiki Kaisha | Multiprocessor system with unit processors assigned a plurality of non-contiguous regions |
US6320600B1 (en) * | 1998-12-15 | 2001-11-20 | Cornell Research Foundation, Inc. | Web-based video-editing method and system using a high-performance multimedia software library |
US20030072555A1 (en) * | 2001-10-12 | 2003-04-17 | Adrian Yap | Method and apparatus for identifying MPEG picture coding types |
US20040056884A1 (en) * | 2002-09-25 | 2004-03-25 | General Instrument Corporation | Methods and apparatus for processing progressive I-slice refreshed MPEG data streams to enable trick play mode features on a display device |
US6717952B2 (en) | 1998-01-15 | 2004-04-06 | Apple Computer, Inc. | Method and apparatus for media data transmission |
US6738846B1 (en) | 1999-02-23 | 2004-05-18 | Sun Microsystems, Inc. | Cooperative processing of tasks in a multi-threaded computing system |
US20050015794A1 (en) * | 2002-12-20 | 2005-01-20 | Stmicroelectronics Sa | Audio/video decoding process and device, and video driver circuit and decoder box incorporating the same |
US20050091057A1 (en) | 1999-04-12 | 2005-04-28 | General Magic, Inc. | Voice application development methodology |
US20050132264A1 (en) | 2003-12-15 | 2005-06-16 | Joshi Ajit P. | System and method for intelligent transcoding |
US6925052B1 (en) | 1999-10-01 | 2005-08-02 | Agilent Technologies, Inc. | Multi-channel network monitoring apparatus, signal replicating device, and systems including such apparatus and devices, and enclosure for multi-processor equipment |
US7039048B1 (en) | 2000-09-22 | 2006-05-02 | Terayon Communication Systems, Inc. | Headend cherrypicker multiplexer with switched front end |
US20060104305A1 (en) * | 2004-11-12 | 2006-05-18 | William Yoshida | Audio/video streaming system |
US7526182B2 (en) * | 2004-09-27 | 2009-04-28 | Kabushiki Kaisha Toshiba | Editing apparatus and editing method |
-
2006
- 2006-03-21 US US11/385,468 patent/US8264960B2/en active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4473904A (en) | 1978-12-11 | 1984-09-25 | Hitachi, Ltd. | Speech information transmission method and system |
US6124866A (en) * | 1989-05-10 | 2000-09-26 | Mitsubishi Denki Kabushiki Kaisha | Multiprocessor system with unit processors assigned a plurality of non-contiguous regions |
US5559999A (en) * | 1994-09-09 | 1996-09-24 | Lsi Logic Corporation | MPEG decoding system including tag list for associating presentation time stamps with encoded data units |
US5638370A (en) | 1994-12-28 | 1997-06-10 | Intel Corporation | Status bit controlled HDLC accelerator |
US5898695A (en) * | 1995-03-29 | 1999-04-27 | Hitachi, Ltd. | Decoder for compressed and multiplexed video and audio data |
US5828416A (en) * | 1996-03-29 | 1998-10-27 | Matsushita Electric Corporation Of America | System and method for interfacing a transport decoder to a elementary stream video decorder |
US6717952B2 (en) | 1998-01-15 | 2004-04-06 | Apple Computer, Inc. | Method and apparatus for media data transmission |
US6320600B1 (en) * | 1998-12-15 | 2001-11-20 | Cornell Research Foundation, Inc. | Web-based video-editing method and system using a high-performance multimedia software library |
US6738846B1 (en) | 1999-02-23 | 2004-05-18 | Sun Microsystems, Inc. | Cooperative processing of tasks in a multi-threaded computing system |
US20050091057A1 (en) | 1999-04-12 | 2005-04-28 | General Magic, Inc. | Voice application development methodology |
US6925052B1 (en) | 1999-10-01 | 2005-08-02 | Agilent Technologies, Inc. | Multi-channel network monitoring apparatus, signal replicating device, and systems including such apparatus and devices, and enclosure for multi-processor equipment |
US7039048B1 (en) | 2000-09-22 | 2006-05-02 | Terayon Communication Systems, Inc. | Headend cherrypicker multiplexer with switched front end |
US20030072555A1 (en) * | 2001-10-12 | 2003-04-17 | Adrian Yap | Method and apparatus for identifying MPEG picture coding types |
US20040056884A1 (en) * | 2002-09-25 | 2004-03-25 | General Instrument Corporation | Methods and apparatus for processing progressive I-slice refreshed MPEG data streams to enable trick play mode features on a display device |
US20050015794A1 (en) * | 2002-12-20 | 2005-01-20 | Stmicroelectronics Sa | Audio/video decoding process and device, and video driver circuit and decoder box incorporating the same |
US20050132264A1 (en) | 2003-12-15 | 2005-06-16 | Joshi Ajit P. | System and method for intelligent transcoding |
US7526182B2 (en) * | 2004-09-27 | 2009-04-28 | Kabushiki Kaisha Toshiba | Editing apparatus and editing method |
US20060104305A1 (en) * | 2004-11-12 | 2006-05-18 | William Yoshida | Audio/video streaming system |
Also Published As
Publication number | Publication date |
---|---|
US20060268354A1 (en) | 2006-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5742361A (en) | Data demultiplexer | |
US7424209B2 (en) | System and method for real-time data archival | |
US10129587B2 (en) | Fast switching of synchronized media using time-stamp management | |
US7889864B2 (en) | Data processing system and method | |
CN101505417B (en) | Time-stamp addition apparatus and time-stamp addition method | |
US20050060420A1 (en) | System for decoding multimedia data and method thereof | |
US8982943B2 (en) | Data processing device and data processing method | |
US7697537B2 (en) | System and method for using generic comparators with firmware interface to assist video/audio decoders in achieving frame sync | |
US8264960B2 (en) | Method and system for sharing AV/record resources in a programmable transport demultiplexer and PVR engine | |
JP2008512919A (en) | Simplified switching between content-related media streams | |
US9578139B2 (en) | Method and system for architecture of a fast programmable transport demultiplexer using a double buffered approach | |
US8855130B2 (en) | Method and apparatus for demultiplexing, merging, and duplicating packetized elementary stream/program stream/elementary stream data | |
US8213778B2 (en) | Recording device, reproducing device, recording medium, recording method, and LSI | |
US8793750B2 (en) | Methods and systems for fast channel change between logical channels within a transport multiplex | |
US7039849B2 (en) | Data decoder and method of decoding data | |
EP0917143B1 (en) | Method and apparatus for controlling the buffering of a data stream | |
US20070248318A1 (en) | System and method for flexible mapping of AV vs record channels in a programmable transport demultiplexer/PVR engine | |
JP4568230B2 (en) | Data processing device | |
US8098657B2 (en) | System and method for providing data commonality in a programmable transport demultiplexer engine | |
JP2008135133A (en) | Bit stream reproducing device | |
JP2001016546A (en) | Moving image recording and reproducing device | |
EP0917142A1 (en) | Method and apparatus for controlling the buffering of a data stream | |
US20090041127A1 (en) | Flexible length decoder | |
US20020048447A1 (en) | Reproduction apparatus, reproduction method, image processing apparatus, and image processing method | |
JP2005117173A (en) | Packet filter apparatus and packet filter processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RODGERS, STEPHANE W.;SIMON, DANIEL Z.;REEL/FRAME:017767/0891 Effective date: 20060320 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 |
|
AS | Assignment |
Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041712/0001 Effective date: 20170119 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE Free format text: MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047230/0133 Effective date: 20180509 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 09/05/2018 PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0133. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047630/0456 Effective date: 20180905 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |