US20050157714A1 - Scrambled packet stream processing - Google Patents

Scrambled packet stream processing Download PDF

Info

Publication number
US20050157714A1
US20050157714A1 US10/498,888 US49888803A US2005157714A1 US 20050157714 A1 US20050157714 A1 US 20050157714A1 US 49888803 A US49888803 A US 49888803A US 2005157714 A1 US2005157714 A1 US 2005157714A1
Authority
US
United States
Prior art keywords
packet
packets
operative
data
picture
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.)
Granted
Application number
US10/498,888
Other versions
US9118941B2 (en
Inventor
Moshe Shlissel
Kevin Muray
Colin Davies
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Synamedia Ltd
Original Assignee
NDS Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from GBGB0204190.3A external-priority patent/GB0204190D0/en
Priority to US10/498,888 priority Critical patent/US9118941B2/en
Application filed by NDS Ltd filed Critical NDS Ltd
Assigned to NDS LIMITED reassignment NDS LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SHLISSEL, MOSHE, DAVIES, COLIN, MURRAY, KEVIN
Publication of US20050157714A1 publication Critical patent/US20050157714A1/en
Assigned to J.P. MORGAN EUROPE LIMITED reassignment J.P. MORGAN EUROPE LIMITED SECURITY AGREEMENT Assignors: NDS LIMITED, NEWS DATACOM LIMITED
Assigned to NDS HOLDCO, INC. reassignment NDS HOLDCO, INC. SECURITY AGREEMENT Assignors: NDS LIMITED, NEWS DATACOM LIMITED
Assigned to NDS LIMITED, NEWS DATACOM LIMITED reassignment NDS LIMITED RELEASE OF INTELLECTUAL PROPERTY SECURITY INTERESTS Assignors: NDS HOLDCO, INC.
Assigned to NDS LIMITED, NEWS DATACOM LIMITED reassignment NDS LIMITED RELEASE OF PATENT SECURITY INTERESTS Assignors: J.P.MORGAN EUROPE LIMITED
Assigned to CISCO TECHNOLOGY, INC. reassignment CISCO TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NDS LIMITED
Publication of US9118941B2 publication Critical patent/US9118941B2/en
Application granted granted Critical
Assigned to NDS LIMITED reassignment NDS LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BEAUMARIS NETWORKS LLC, CISCO SYSTEMS INTERNATIONAL S.A.R.L., CISCO TECHNOLOGY, INC., CISCO VIDEO TECHNOLOGIES FRANCE
Assigned to SYNAMEDIA LIMITED reassignment SYNAMEDIA LIMITED CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: NDS LIMITED
Assigned to SYNAMEDIA LIMITED reassignment SYNAMEDIA LIMITED CORRECTIVE ASSIGNMENT TO CORRECT THE 26 APPLICATION NUMBERS ERRONEOUSLY RECORDED AGAINST ON THE ATTACHED LIST PREVIOUSLY RECORDED AT REEL: 048513 FRAME: 0297. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Assignors: NDS LIMITED
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • H04N7/1675Providing digital key or authorisation information for generation or regeneration of the scrambling sequence

Definitions

  • the present invention relates to packet-based communications systems in general, and more particularly to processing scrambled packet streams.
  • a home video server 100 employs a tuner 102 to receive a digital television broadcast signal via a satellite receiver 104 .
  • the signal data such as a scrambled MPEG-2 packet stream, may be stored on a storage medium 110 , descrambled and decoded by an MPEG decoder 106 for viewing on a television 108 , and transmitted in scrambled form via a transmitter 112 to a client 114 .
  • Client 114 may similarly descramble and decode the scrambled packet stream at an MPEG decoder 116 for viewing on a television 118 .
  • the present invention in preferred embodiments thereof, provides for scrambled packet stream processing in which portions of a scrambled packet stream are removed or descrambled and altered, such as in support of digital video trick modes, while preserving a valid video stream that includes scrambled portions that have not been altered.
  • a method for processing a packet-based scrambled stream including receiving a plurality of scrambled packets in a packet stream, descrambling any of the scrambled packets, and transmitting a modified packet stream including at least one of the descrambled packets and at least one of the scrambled packets.
  • the method further includes moving a data segment within a payload of any of the packets from a first location within the payload to a second location within the payload.
  • the method further includes overwriting at least a portion of the first location.
  • the overwriting step includes overwriting with any of zeroes, stuffing bytes, and padding bytes.
  • the method further includes overwriting data designated as undesirable within a payload of any of the packets.
  • any of the overwriting steps includes overwriting with any of zeroes, stuffing bytes, and padding bytes.
  • the method further includes changing the value of at least one byte of any of the packets in accordance with a predefined processing decision.
  • the changing step includes changing the byte in any of the descrambled packets.
  • the method further includes changing the value of at least one bit of any of the packets in accordance with a predefined processing decision.
  • the changing step includes changing the bit in any of the descrambled packets.
  • the method further includes dropping any of the packets from the received packet stream in accordance with a predefined processing decision.
  • the receiving step includes receiving a video stream including a plurality of independent video elements and at least one video element that is dependent on any of the independent video elements, and the method further includes removing any of the dependent video elements from the video stream, thereby resulting in the modified packet stream.
  • the method further includes modifying any of the video elements to maintain the validity of the processed video stream with respect to a protocol.
  • the method further includes holding any of the packets until the packets collectively comprise a predefined processing unit, and the transmitting step includes transmitting the held packets including the processing unit.
  • the method further includes holding any of the packets until the packets collectively comprise the data of at least one picture, and the transmitting step includes transmitting the held packets including the data of the picture.
  • the method further includes retransmitting the held packets at least one additional time.
  • the retransmitting step includes retransmitting a sufficient number of times in order to effect a predetermined slow-down factor of a display of the picture.
  • the retransmitting step includes retransmitting where the picture is an MPEG-protocol B-picture.
  • the method further includes transmitting a sufficient number of null pictures in order to effect a predetermined slow-down factor of a display of the picture.
  • the transmitting null pictures step includes transmitting where the picture is either of an MPEG-protocol P-picture and an MPEG-protocol I-picture.
  • the method further includes converting any of the packets including data from multiple pictures into a plurality of individual packets, each including data from only one of the multiple pictures.
  • the method further includes modifying any of the packets to maintain the slow-down factor.
  • the method further includes modifying any of the packets to maintain the validity of the packet stream with respect to an MPEG protocol.
  • a method for providing a processed MPEG video stream including receiving an MPEG video stream as a plurality of scrambled packets including data that are designated as desirable data and data that are designated as undesirable data, descrambling any of the scrambled packets, and transmitting a processed MPEG video stream including at least one of the descrambled packets and at least one of the scrambled packets.
  • the method further includes removing any of the undesirable data from any of the descrambled packets, thereby resulting in a modified descrambled packet, and where the transmitting step includes transmitting the modified descrambled packet.
  • the method further includes designating as desirable data any of I-picture data and header data that is necessary to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • the method further includes designating as undesirable data any of P-picture data, B-picture data, and header data that not is necessary to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • the method further includes modifying any header information in the processed MPEG video stream to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • the removing step includes dropping any of the packets having only the undesirable data.
  • the removing step includes overwriting at least a portion of the undesirable data with any of zeroes, stuffing bytes, and padding bytes.
  • the removing step includes padding an adaptation field within any of the packets having the undesirable data with a sufficient number of bytes to overwrite at least a portion of the undesirable data.
  • the removing step includes moving the desirable data within a payload of any of the packets from a first location within the payload to a second location within the payload.
  • the removing step includes overwriting at least a portion of the first location.
  • the removing step includes overwriting at least a portion of the first location with any of zeroes, stuffing bytes, and padding bytes.
  • the removing step includes padding an adaptation field within the packet with a sufficient number of bytes to overwrite at least a portion of the first location.
  • the removing step includes overwriting a PES header in any of the packets with PES header stuffing bytes, where the PES header is followed by the desirable data, and setting a flags byte of the PES header to indicate that no PES header options are present.
  • the method further includes generating and inserting into the processed MPEG video stream a TS packet including a generated PES header where the PES header is required to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • the method further includes generating and inserting into the processed MPEG video stream a TS packet including a generated PCR where the PCR is required to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • the method further includes generating and inserting a sufficient number of null pictures into the processed MPEG video stream to achieve a predefined playback speed.
  • the removing step includes, where any of the packets includes an ES sequence header, setting a bit_rate_value of the ES sequence header to a peak bit rate at which the processed MPEG video stream will be transmitted, and setting a vbv_buffer_size_value of the ES sequence header equal to that which is indicated for a Main Profile at Main Level.
  • the removing step includes, where any of the packets includes a picture header of an I-picture, setting a temporal_reference value in the packet to zero setting a vbv_delay in the packet to indicate that no value is specified.
  • the removing step includes, where any of the packets includes an adaptation field that may be removed without compromising the validity of the processed MPEG video stream, replacing a flags byte of the adaptation field with zeros, and replacing all remaining bytes of the adaptation field with stuffing bytes.
  • a scrambled packet stream processor including a descrambler operative to descramble any packet in a scrambled packet stream, a packet processor operative to perform at least one packet processing decision upon any of the packets resulting in any of generating a packet, deciding to drop any of the packets, altering any of the packets, and deciding to forward any of the packets from the stream, and a packet selector responsive to the decision and operative to perform any of inserting the generated packet into the stream, dropping any of the packets, and forwarding any of the packets, where the packet selector forwards at least one of the scrambled packets and at least one descrambled packet.
  • a packet stream processing architecture including a first packet buffer into which a first TS packet from a packet stream may be placed, a second packet buffer into which a second TS packet that follows the first TS packet in the packet stream may be placed, a first data pointer operative to indicate the location of the packet payload of the first packet, a second data pointer operative to indicate the location of the packet payload of the second packet, a first flag operative to indicate if the first packet should be transmitted in scrambled or descrambled form, and a second flag operative to indicate if the second packet should be transmitted in scrambled or descrambled form.
  • the architecture further includes a PID filter operative to selectively place any of the packets into any of the buffers in accordance with predefined selection criteria.
  • apparatus for processing a packet-based scrambled stream including a descrambler operative to receive a plurality of scrambled packets in a packet stream and descramble any of the scrambled packets, and a packet selector operative to transmit a modified packet stream including at least one of the descrambled packets and at least one of the scrambled packets.
  • the apparatus further includes a packet processor operative to modify any of the packets.
  • the packet processor is operative to move a data segment within a payload of any of the packets from a first location within the payload to a second location within the payload.
  • the packet processor is operative to overwrite at least a portion of the first location.
  • the packet processor is operative to overwrite with any of zeroes, stuffing bytes, and padding bytes.
  • the packet processor is operative to overwrite data designated as undesirable within a payload of any of the packets.
  • the packet processor is operative to overwrite with any of zeroes, stuffing bytes, and padding bytes.
  • the packet processor is operative to change the value of at least one byte of any of the packets in accordance with a predefined processing decision.
  • the packet processor is operative to change the byte in any of the descrambled packets.
  • the packet processor is operative to change the value of at least one bit of any of the packets in accordance with a predefined processing decision.
  • the packet processor is operative to change the bit in any of the descrambled packets.
  • the packet processor is operative to drop any of the packets from the received packet stream in accordance with a predefined processing decision.
  • the stream includes a plurality of independent video elements and at least one video element that is dependent on any of the independent video elements, and the packet processor is operative to remove any of the dependent video elements from the video stream, thereby resulting in the modified packet stream.
  • the packet processor is operative to modify any of the video elements to maintain the validity of the processed video stream with respect to a protocol.
  • the packet processor is operative to hold any of the packets until the packets collectively comprise a predefined processing unit, and where the packet selector is operative to transmit the held packets including the processing unit.
  • the packet processor is operative to hold any of the packets until the packets collectively comprise the data of at least one picture, and where the packet selector is operative to transmit the held packets including the data of the picture.
  • the packet selector is operative to retransmit the held packets at least one additional time.
  • the packet selector is operative to retransmit the held packets a sufficient number of times in order to effect a predetermined slow-down factor of a display of the picture.
  • the packet selector is operative to retransmit where the picture is an MPEG-protocol B-picture.
  • the packet selector is operative to transmit a sufficient number of null pictures in order to effect a predetermined slowdown factor of a display of the picture.
  • the packet selector is operative to transmit where the picture is either of an MPEG-protocol P-picture and an MPEG-protocol I-picture.
  • the packet processor is operative to convert any of the packets including data from multiple pictures into a plurality of individual packets, each including data from only one of the multiple pictures.
  • the packet processor is operative to modify any of the packets to maintain the slowdown factor.
  • the apparatus further includes modifying any of the packets to maintain the validity of the packet stream with respect to an MPEG protocol.
  • apparatus for providing a processed MPEG video stream including a descrambler operative to receive an MPEG video stream as a plurality of scrambled packets including data that are designated as desirable data and data that are designated as undesirable data and descramble any of the scrambled packets, and a packet selector operative to transmit a processed MPEG video stream including at least one of the descrambled packets and at least one of the scrambled packets.
  • the apparatus further includes a packet processor operative to remove any of the undesirable data from any of the descrambled packets, thereby resulting in a modified descrambled packet, and where the packet selector is operative to transmit the modified descrambled packet.
  • the desirable data includes any of I-picture data and header data that is necessary to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • the undesirable data includes any of P-picture data, B-picture data, and header data that not is necessary to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • the packet processor is operative to modify any header information in the processed MPEG video stream to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • the packet processor is operative to drop any of the packets having only the undesirable data.
  • the packet processor is operative to overwrite at least a portion of the undesirable data with any of zeroes, stuffing bytes, and padding bytes.
  • the packet processor is operative to pad an adaptation field within any of the packets having the undesirable data with a sufficient number of bytes to overwrite at least a portion of the undesirable data.
  • the packet processor is operative to move the desirable data within a payload of any of the packets from a first location within the payload to a second location within the payload.
  • the packet processor is operative to overwrite at least a portion of the first location.
  • the packet processor is operative to overwrite at least a portion of the first location with any of zeroes, stuffing bytes, and padding bytes.
  • the packet processor is operative to pad an adaptation field within the packet with a sufficient number of bytes to overwrite at least a portion of the first location.
  • the packet processor is operative to overwrite a PES header in any of the packets with PES header stuffing bytes, where the PES header is followed by the desirable data, and set a flags byte of the PES header to indicate that no PES header options are present.
  • the packet processor is operative to generate and insert into processed MPEG video stream a TS packet including a generated PES header where the PES header is required to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • the packet processor is operative to generate and insert into the processed MPEG video stream a TS packet including a generated PCR where the PCR is required to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • the packet processor is operative to generate and insert a sufficient number of null pictures into the processed MPEG video stream to achieve a predefined playback speed.
  • the packet processor is operative to, where any of the packets includes an ES sequence header, set a bit_rate_value of the ES sequence header to a peak bit rate at which the processed MPEG video stream will be transmitted, and set a vbv_buffer_size_value of the ES sequence header equal to that which is indicated for a Main Profile at Main Level.
  • the packet processor is operative to, where any of the packets includes a picture header of an I-picture, set a temporal_reference value in the packet to zero set a vbv_delay in the packet to indicate that no value is specified.
  • the packet processor is operative to, where any of the packets includes an adaptation field that may be removed without compromising the validity of the processed MPEG video stream, replace a flags byte of the adaptation field with zeros, and replace all remaining bytes of the adaptation field with stuffing bytes.
  • references to modifying data may be understood as referring to data modification at the bit or byte level.
  • FIG. 1 is a simplified block diagram of a home video server architecture, useful in understanding the present invention
  • FIG. 2 is a simplified conceptual illustration of aspects of MPEG-2 streams and packets, useful in understanding the present invention
  • FIG. 3 is a simplified block diagram of a scrambled packet stream processor, constructed and operative in accordance with a preferred embodiment of the present invention
  • FIGS. 4A-4J are simplified flowchart illustrations of packet processing decisions, operative in accordance with a preferred embodiment of the present invention.
  • FIG. 5 is a simplified block diagram of a packet stream processing architecture, constructed and operative in accordance with a preferred embodiment of the present invention.
  • FIG. 6 is a simplified flowchart illustration of an alternate method of scrambled packet processing, operative in accordance with a preferred embodiment of the present invention.
  • FIG. 2 is a simplified conceptual illustration of aspects of MPEG-2 streams and packets, useful in understanding the present invention.
  • ES 200 may be segmented, with each ES segment packetized into one or more Packetized Elementary Stream (PES) packets 206 .
  • PES Packetized Elementary Stream
  • Each PES packet 206 includes a PES header 208 followed by a PES payload 210 , where each PES payload 210 stores a portion of an ES segment.
  • each PES packet 206 may be packetized into one or more Transport Stream (TS) packets 212 .
  • Each TS packet 212 includes a TS header 214 , optionally followed by an adaptation field 216 , and followed by a TS payload 218 , where each TS packet 212 stores a portion of a PES packet 206 .
  • Video portions 204 of ES 200 typically include groups of pictures (GOP), where each picture is encoded as one of three picture types: an Intra picture, or I-picture, where all the data for the picture are held within the picture itself; a Predicted picture, or P-picture, where some of the image data are predicted from the previous I or P picture; and a Bi-directionally Predicted picture, or B-picture, where some of the image data are predicted from the next I- or P-picture and some from the previous I- or P-picture.
  • I-picture Intra picture
  • P-picture Predicted picture
  • B-picture Bi-directionally Predicted picture
  • the structure of a GOP typically starts with an I-picture followed by a combination of P- and B-pictures, such as in the sequence IBBPBBPBBPBB, although for coding efficiency the order of the pictures within the GOP is typically different than presentation order of the pictures.
  • Each coded picture is preceded by a start code, typically a bit string of 32 or more bits which starts byte-aligned with the 24-bit value 0x000001 and which may be preceded by any number of zero bytes.
  • the start code provides information about the ES data that follow the start code.
  • Individual pictures may vary in size, and are typically large enough to fill many TS packets. The start and end of a picture is not necessarily aligned with the start and end of a TS or PES packet.
  • PES header 208 may include timestamps which indicate when to decode or display pictures stored in PES payload 210 .
  • PES header 208 must start at the beginning of a TS packet, and may be followed by any part of the ES, including any part (i.e., beginning, middle, or end) of header portion 202 or video portion 204 .
  • FIG. 3 is a simplified block diagram of a scrambled packet stream processor, constructed and operative in accordance with a preferred embodiment of the present invention.
  • a scrambled packet stream such as an MPEG-2 TS packet stream
  • a descrambler 300 is descrambled by a descrambler 300 in accordance with conventional techniques.
  • Each packet is then processed by a packet processor 302 where the decision is made to drop the packet, forward the packet as-is in scrambled or descrambled form, alter and forward the scrambled or descrambled packet, or insert generated packets into the scrambled packet stream.
  • a preferred method of operation of packet processor 302 is described in greater detail hereinbelow with reference to FIGS.
  • packet selector 304 receives packets from packet processor 302 and packet selector 304 as well.
  • packet selector 304 For each scrambled packet in the scrambled packet stream, packet selector 304 generates a processed packet stream by carrying out the decision made by packet processor 302 and either drops the packet, forwards the scrambled packet as is, replaces the packet with its altered version or as-is descrambled version, and/or inserts a generated packet into the scrambled packet stream.
  • FIGS. 4A-4J are simplified flowchart illustrations of packet processing decisions, such as may be carried out by packet processor 302 ( FIG. 3 ), operative in accordance with a preferred embodiment of the present invention.
  • the packet processing decisions shown in FIGS. 4A-4J are typically carried out in support of fast-forward viewing of MPEG-2 streams, in which a TS packet stream is purged of packets that do not include data that are designated as desirable, such as I-picture data (including I-picture header information) or other critical header data.
  • TS packets that include desirable data are either forwarded unmodified and in scrambled form, or are modified, such as by purging data that are designated as undesirable, such as B- and P-picture data, or by changing header field values, and forwarded in descrambled form.
  • a descrambled TS packet is received. If the TS packet payload contains only data that are designated as undesirable, such as P-picture or B-picture data, PES header information, ES header data that are not required to maintain the validity of the MPEG stream, or any combination thereof, the entire packet is dropped (i.e., removed) from the stream.
  • a descrambled TS packet is received in which the TS packet payload starts with data that are designated as undesirable, such as P- or B-picture data, and that is followed by data that are designated as desirable, such as I-picture data.
  • the P- or B-picture data may be removed by overwriting them at the bit or byte level with zeroes which represent ES stuffing bytes (i.e., 0x00) which are ignored by the MPEG decoder.
  • the adaptation field may be expanded by padding it with a sufficient number of stuffing bytes to overwrite the P- or B-picture data bytes until the I-picture boundary is reached.
  • a flags byte is then added if one does not exist, and the adaptation_field_length is then changed to reflect the increased size of the adaptation field. If no adaptation field is present, one may be created by setting the relevant TS packet header flag, including a length byte set to the size of the adaptation field, and, as needed, a flags byte set to 0x00followed by a sufficient number of adaptation field stuffing bytes (0xFF) until the I-picture startcode is reached.
  • a descrambled TS packet is received in which the TS packet payload starts with data that are designated as desirable, such as I-picture data, followed only by data that are designated as undesirable, such as P-picture and/or B-picture data and/or ES header data that are not required to maintain the validity of the MPEG stream.
  • the I-picture data is preferably moved to the end of the payload.
  • the data at the start of the payload that is not desired may then be eliminated by overwriting them with ES stuffing bytes (i.e., 0x00) until the I-picture boundary is reached.
  • the data that are not desired may be overwritten by expanding or inserting an adaptation field and padding it with stuffing bytes (i.e., 0xFF) as described above ( FIG. 4B ) until the I-picture boundary is reached.
  • a descrambled TS packet is received in which the TS packet payload contains only PES header information followed by data that are designated as desirable, such as I-picture data and/or ES header data that are required to maintain the validity of the MPEG stream.
  • the PES header may be eliminated by overwriting it with an allowable number (i.e., 32 bytes in the MPEG standard) of PES header stuffing bytes (i.e., 0xFF), and by setting the flags byte of the PES header to 0x00(i.e., setting the flags to indicate that no PES header options are present).
  • the PES header may be eliminated by moving the I-picture data and/or ES header data to the end of the packet payload if the data are not already located at the end of the packet payload, by expanding or inserting an adaptation field and padding it with adaptation layer stuffing bytes (i.e., 0xFF) as described above ( FIG. 4B ), and by clearing the payload_unit_start_indicator in the TS header to indicate that there is no PES header present.
  • adaptation layer stuffing bytes i.e., 0xFF
  • a TS packet may be generated including a generated PES header, and preferably no other payload data, and inserted into the TS packet stream.
  • the frame_rate_code most recently encountered in the sequence header portion of the ES header data is read.
  • the frame_rate_code indicates the frame rate of the encoded video and is used to determine the correct display and/or decode timestamps for the generated PES header in accordance with conventional techniques.
  • the TS packet payload may be reduced to the size required for the PES header through the use of a padded adaptation field, if required.
  • a TS packet may be generated including a generated PCR inserted into the TS packet stream.
  • an accurate PCR correctly linked to the PES timestamps must be maintained.
  • the last transmitted PCR, the number of packets sent since the last PCR was sent (and hence the number of bits sent), and the output bit rate are preferably maintained. If a constant bit-rate is in use, when a PCR value is required a “soft PCR” can be calculated by adding to the last transmitted PCR the time taken to send the number of packets transmitted at the bit-rate specified.
  • a target time for the transmission of the next PCR is preferably maintained and compared with the end time of the current packet. If the current packet will finish being transmitted after the target time, then the PCR must be transmitted first. Once the correct time is identified, the PCR is transmitted.
  • null pictures may be generated in accordance with conventional techniques and inserted into the TS packet stream.
  • a null picture repeats the presentation of the most recently encountered reference picture, which is either an I- or P-picture, and is coded as a P-picture.
  • the horizontal_size_value and vertical_size_value most recently encountered in the sequence header portion of the ES header data are read. When generating null pictures these values are used to ensure that the generated frames are the same size as other frames in the stream.
  • the temporal_reference value in the null picture header is preferably incremented relative to the previously encountered temporal_reference value.
  • bit_rate_value specifies the maximum bit rate at which the MPEG decoder buffer may operate, which, in practice, defines the peak bit-rate of the stream. This value is preferably set to the peak bit rate at which the stream will be transmitted and which may be set in accordance with conventional techniques.
  • the vbv_buffer_size_value defines the size of the decoder buffer that is required to decode the stream. This value is preferably set equal to that which is indicated for the Main Profile at Main Level (MP@ML) in accordance with conventional techniques.
  • a descrambled TS packet is received in which the picture header of an I-picture is stored.
  • the temporal_reference and vbv_delay of the picture header are preferably changed.
  • the temporal_reference defines when, in display order, the I-picture is to be displayed.
  • the temporal_reference value in the current TS packet is preferably set to zero.
  • the vbv_delay typically defines the length of time that the data for the current picture will remain in the decoder buffer.
  • the value in the current TS packet is preferably set to all ones to indicate that no value is specified.
  • a descrambled TS packet is received including an adaptation field. If the decision is made to retain the TS packet, and the adaptation field may be removed without compromising the validity of the MPEG stream, the flags byte (i.e., the second byte of the adaptation field) may be replaced with zeros, and all the remaining adaptation bytes may be replaced with stuffing bytes (0xff). Since adaptation fields are not scrambled, these changes may be alternatively made to the corresponding scrambled packet. If no other changes are made to the packet, the modified scrambled packet may be transmitted. Otherwise, the modified descrambled packet is transmitted.
  • the flags byte i.e., the second byte of the adaptation field
  • packet selector 304 is so notified. If the TS packet is to be forwarded, and no changes were made to the TS packet, packet selector 304 is notified to forward the scrambled version of the packet in the MPEG stream as is. If any changes where made to the descrambled packet payload, including reducing its size, packet selector 304 is notified to replace the scrambled version of the packet in the MPEG stream with the modified descrambled version.
  • packet selector 304 If no changes were made to the descrambled packet payload, but changes were made to the packet header, such as to the adaptation field, packet selector 304 is notified to forward the modified scrambled packet. Otherwise, packet selector 304 is notified to forward the modified descrambled packet.
  • FIG. 5 is a simplified block diagram of a packet stream processing architecture, constructed and operative in accordance with a preferred embodiment of the present invention.
  • the architecture of FIG. 5 may be employed to carry out the packet processing decisions of FIGS. 4A-4J .
  • two packet buffers 500 and 502 are respectively used to read in a current TS packet and the packet following the current packet. Since picture start codes may straddle packets, it may be necessary to look into the next packet to identify a start code that begins in the current packet or to identify whether the start code that begins in the current packet is for an I-, P-, or B-picture.
  • a data pointer 504 , 506 is preferably set to indicate where the packet payload is to be found. If the packet has no payload (e.g., it is a PCR-only packet), then the packet may be dropped and another packet may be loaded. Likewise, a flag 508 , 510 may be initialized that will be used to indicate if the packet should be transmitted in scrambled or descrambled form.
  • any adaptation field bytes must be skipped, which may later be removed as described hereinabove.
  • the length of the adaptation field is specified by the first byte of the adaptation field.
  • any PES header bytes whose presence is indicated by the payload_unit_start_indicator flag in the TS header, should be skipped.
  • the PES header bytes may also be removed by replacing them with adaptation field stuffing as described hereinabove.
  • a PES header will start after any adaptation data, and its length is indicated in the ninth byte of the PES header of an audio or video stream. The remaining data in the packet represents the payload.
  • a PID filter 512 may be used to ensure that only TS packets with desired PIDs are processed by the stream processor. For example, where a fast-forward trick mode video stream is desired without audio, PID filter 512 may be used to filter out any TS packets with only audio data.
  • FIG. 6 is a simplified flowchart illustration of an alternate method of scrambled packet processing, operative in accordance with a preferred embodiment of the present invention.
  • the method of FIG. 6 is typically carried out in support of slow-motion viewing of MPEG-2 streams, in which previously transmitted pictures are caused to be displayed multiple times in accordance with a slow-down factor.
  • a scrambled TS packet is received and descrambled, such as at descrambler 300 ( FIG. 3 ).
  • the descrambled packet is then examined, such as at packet processor 302 , to determine whether or not the packet contains data from an I-, P-, or B-picture. If so, the packet is held, such as in a buffer, together with other packets of the same picture type until a predefined processing unit, such as an entire I-, P-, or B-picture, is formed.
  • a packet is received that contains data from multiple pictures, typically being the end of one picture and the beginning of another, the packet is converted into multiple packets using conventional techniques or other techniques described hereinabove, where each packet contains data from only one of the pictures.
  • the packet that contains data belonging to the currently held picture thus completes the data for the picture.
  • slow-motion may be achieved as follows. If the picture is an I- or P-picture, the packets may be transmitted once, such as at packet selector 304 , followed by one or more null pictures instructing the receiver to display the picture one or more additional times in accordance with a predetermined slow-down factor. If the picture is a B-picture, all the packets for the B-picture are transmitted once, and then are retransmitted one or more times in accordance with the slow-down factor. The packets of the currently held picture may be discarded once they are no longer required for transmission.
  • any of the received packets may be modified to maintain the slow-down factor maintain and/or the validity of the MPEG stream using conventional techniques or other techniques described hereinabove.
  • the temporal_value is preferably replaced with a multiple of the original temporal_value which represents the slow-down factor
  • the vbv_delay of all the headers is preferably replaced with ones as described hereinabove.
  • Packets that have been modified are preferably transmitted in descrambled form, while packets that have not been modified may be transmitted in either scrambled or descrambled form.

Abstract

A method for processing a packet-based scrambled stream, the method including receiving a plurality of scrambled packets in a packet stream, descrambling any of the scrambled packets, and transmitting a modified packet stream including at least one of the descrambled packets and at least one of the scrambled packets. Related apparatus and methods are also described.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application claims the benefit of the filing date of U.S. Provisional Patent Application Ser. No. 60/360,635, filed Mar. 1, 2002, and titled “Processing of Scrambled Streams,” and U.K. Patent Application No. 0204190.3, filed Feb. 22, 2002, and titled “Processing of Scrambled Streams,” both of which are incorporated herein by reference in their entirety.
  • FIELD OF THE INVENTION
  • The present invention relates to packet-based communications systems in general, and more particularly to processing scrambled packet streams.
  • BACKGROUND OF THE INVENTION
  • Systems for receiving digital television signals are well known. In one common end-user configuration, such as may be seen in FIG. 1, a home video server 100 employs a tuner 102 to receive a digital television broadcast signal via a satellite receiver 104. The signal data, such as a scrambled MPEG-2 packet stream, may be stored on a storage medium 110, descrambled and decoded by an MPEG decoder 106 for viewing on a television 108, and transmitted in scrambled form via a transmitter 112 to a client 114. Client 114 may similarly descramble and decode the scrambled packet stream at an MPEG decoder 116 for viewing on a television 118.
  • When transmitting to client 114, it is advantageous to transmit the MPEG-2 packet stream in scrambled form in support of anti-piracy measures. However, current solutions for providing trick mode support to clients, such as fast-forward viewing, require a) changing the transmission rate, or b) descrambling the packet stream at the video server, modifying the video content to support the trick mode, and either b1) transmitting the descrambled and modified video to the client, or b2) rescrambling and transmitting the modified video to the client. Unfortunately, the existing bandwidth between the server and the client is often insufficient to support an accelerated transmission rate, transmitting descrambled video to the client defeats anti-piracy measures, and existing home video servers are generally incapable of scrambling, and the cost and complexity of adding scrambling functionality to existing hardware, or replacing existing hardware with hardware having scrambling capability, may be prohibitive.
  • Trick mode support for scrambled packet streams that takes advantage of existing bandwidth, that provides for transmission of scrambled packet streams to clients, and that does not require rescrambling at the end-user video server would therefore be advantageous.
  • SUMMARY OF THE INVENTION
  • The present invention, in preferred embodiments thereof, provides for scrambled packet stream processing in which portions of a scrambled packet stream are removed or descrambled and altered, such as in support of digital video trick modes, while preserving a valid video stream that includes scrambled portions that have not been altered.
  • In one aspect of a preferred embodiment of the present invention a method is provided for processing a packet-based scrambled stream, the method including receiving a plurality of scrambled packets in a packet stream, descrambling any of the scrambled packets, and transmitting a modified packet stream including at least one of the descrambled packets and at least one of the scrambled packets.
  • In another aspect of a preferred embodiment of the present invention the method further includes moving a data segment within a payload of any of the packets from a first location within the payload to a second location within the payload.
  • In another aspect of a preferred embodiment of the present invention the method further includes overwriting at least a portion of the first location.
  • In another aspect of a preferred embodiment of the present invention the overwriting step includes overwriting with any of zeroes, stuffing bytes, and padding bytes.
  • In another aspect of a preferred embodiment of the present invention the method further includes overwriting data designated as undesirable within a payload of any of the packets.
  • In another aspect of a preferred embodiment of the present invention any of the overwriting steps includes overwriting with any of zeroes, stuffing bytes, and padding bytes.
  • In another aspect of a preferred embodiment of the present invention the method further includes changing the value of at least one byte of any of the packets in accordance with a predefined processing decision.
  • In another aspect of a preferred embodiment of the present invention the changing step includes changing the byte in any of the descrambled packets.
  • In another aspect of a preferred embodiment of the present invention the method further includes changing the value of at least one bit of any of the packets in accordance with a predefined processing decision.
  • In another aspect of a preferred embodiment of the present invention the changing step includes changing the bit in any of the descrambled packets.
  • In another aspect of a preferred embodiment of the present invention the method further includes dropping any of the packets from the received packet stream in accordance with a predefined processing decision.
  • In another aspect of a preferred embodiment of the present invention the receiving step includes receiving a video stream including a plurality of independent video elements and at least one video element that is dependent on any of the independent video elements, and the method further includes removing any of the dependent video elements from the video stream, thereby resulting in the modified packet stream.
  • In another aspect of a preferred embodiment of the present invention the method further includes modifying any of the video elements to maintain the validity of the processed video stream with respect to a protocol.
  • In another aspect of a preferred embodiment of the present invention the method further includes holding any of the packets until the packets collectively comprise a predefined processing unit, and the transmitting step includes transmitting the held packets including the processing unit.
  • In another aspect of a preferred embodiment of the present invention the method further includes holding any of the packets until the packets collectively comprise the data of at least one picture, and the transmitting step includes transmitting the held packets including the data of the picture.
  • In another aspect of a preferred embodiment of the present invention the method further includes retransmitting the held packets at least one additional time.
  • In another aspect of a preferred embodiment of the present invention the retransmitting step includes retransmitting a sufficient number of times in order to effect a predetermined slow-down factor of a display of the picture.
  • In another aspect of a preferred embodiment of the present invention the retransmitting step includes retransmitting where the picture is an MPEG-protocol B-picture.
  • In another aspect of a preferred embodiment of the present invention the method further includes transmitting a sufficient number of null pictures in order to effect a predetermined slow-down factor of a display of the picture.
  • In another aspect of a preferred embodiment of the present invention the transmitting null pictures step includes transmitting where the picture is either of an MPEG-protocol P-picture and an MPEG-protocol I-picture.
  • In another aspect of a preferred embodiment of the present invention the method further includes converting any of the packets including data from multiple pictures into a plurality of individual packets, each including data from only one of the multiple pictures.
  • In another aspect of a preferred embodiment of the present invention the method further includes modifying any of the packets to maintain the slow-down factor.
  • In another aspect of a preferred embodiment of the present invention the method further includes modifying any of the packets to maintain the validity of the packet stream with respect to an MPEG protocol.
  • In another aspect of a preferred embodiment of the present invention a method is provided for providing a processed MPEG video stream, the method including receiving an MPEG video stream as a plurality of scrambled packets including data that are designated as desirable data and data that are designated as undesirable data, descrambling any of the scrambled packets, and transmitting a processed MPEG video stream including at least one of the descrambled packets and at least one of the scrambled packets.
  • In another aspect of a preferred embodiment of the present invention the method further includes removing any of the undesirable data from any of the descrambled packets, thereby resulting in a modified descrambled packet, and where the transmitting step includes transmitting the modified descrambled packet.
  • In another aspect of a preferred embodiment of the present invention the method further includes designating as desirable data any of I-picture data and header data that is necessary to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • In another aspect of a preferred embodiment of the present invention the method further includes designating as undesirable data any of P-picture data, B-picture data, and header data that not is necessary to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • In another aspect of a preferred embodiment of the present invention the method further includes modifying any header information in the processed MPEG video stream to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • In another aspect of a preferred embodiment of the present invention the removing step includes dropping any of the packets having only the undesirable data.
  • In another aspect of a preferred embodiment of the present invention the removing step includes overwriting at least a portion of the undesirable data with any of zeroes, stuffing bytes, and padding bytes.
  • In another aspect of a preferred embodiment of the present invention the removing step includes padding an adaptation field within any of the packets having the undesirable data with a sufficient number of bytes to overwrite at least a portion of the undesirable data.
  • In another aspect of a preferred embodiment of the present invention the removing step includes moving the desirable data within a payload of any of the packets from a first location within the payload to a second location within the payload.
  • In another aspect of a preferred embodiment of the present invention the removing step includes overwriting at least a portion of the first location.
  • In another aspect of a preferred embodiment of the present invention the removing step includes overwriting at least a portion of the first location with any of zeroes, stuffing bytes, and padding bytes.
  • In another aspect of a preferred embodiment of the present invention the removing step includes padding an adaptation field within the packet with a sufficient number of bytes to overwrite at least a portion of the first location.
  • In another aspect of a preferred embodiment of the present invention the removing step includes overwriting a PES header in any of the packets with PES header stuffing bytes, where the PES header is followed by the desirable data, and setting a flags byte of the PES header to indicate that no PES header options are present.
  • In another aspect of a preferred embodiment of the present invention the method further includes generating and inserting into the processed MPEG video stream a TS packet including a generated PES header where the PES header is required to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • In another aspect of a preferred embodiment of the present invention the method further includes generating and inserting into the processed MPEG video stream a TS packet including a generated PCR where the PCR is required to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • In another aspect of a preferred embodiment of the present invention the method further includes generating and inserting a sufficient number of null pictures into the processed MPEG video stream to achieve a predefined playback speed.
  • In another aspect of a preferred embodiment of the present invention the removing step includes, where any of the packets includes an ES sequence header, setting a bit_rate_value of the ES sequence header to a peak bit rate at which the processed MPEG video stream will be transmitted, and setting a vbv_buffer_size_value of the ES sequence header equal to that which is indicated for a Main Profile at Main Level.
  • In another aspect of a preferred embodiment of the present invention the removing step includes, where any of the packets includes a picture header of an I-picture, setting a temporal_reference value in the packet to zero setting a vbv_delay in the packet to indicate that no value is specified.
  • In another aspect of a preferred embodiment of the present invention the removing step includes, where any of the packets includes an adaptation field that may be removed without compromising the validity of the processed MPEG video stream, replacing a flags byte of the adaptation field with zeros, and replacing all remaining bytes of the adaptation field with stuffing bytes.
  • In another aspect of a preferred embodiment of the present invention a scrambled packet stream processor is provided including a descrambler operative to descramble any packet in a scrambled packet stream, a packet processor operative to perform at least one packet processing decision upon any of the packets resulting in any of generating a packet, deciding to drop any of the packets, altering any of the packets, and deciding to forward any of the packets from the stream, and a packet selector responsive to the decision and operative to perform any of inserting the generated packet into the stream, dropping any of the packets, and forwarding any of the packets, where the packet selector forwards at least one of the scrambled packets and at least one descrambled packet.
  • In another aspect of a preferred embodiment of the present invention a packet stream processing architecture is provided including a first packet buffer into which a first TS packet from a packet stream may be placed, a second packet buffer into which a second TS packet that follows the first TS packet in the packet stream may be placed, a first data pointer operative to indicate the location of the packet payload of the first packet, a second data pointer operative to indicate the location of the packet payload of the second packet, a first flag operative to indicate if the first packet should be transmitted in scrambled or descrambled form, and a second flag operative to indicate if the second packet should be transmitted in scrambled or descrambled form.
  • In another aspect of a preferred embodiment of the present invention the architecture further includes a PID filter operative to selectively place any of the packets into any of the buffers in accordance with predefined selection criteria.
  • In another aspect of a preferred embodiment of the present invention apparatus for processing a packet-based scrambled stream is provided including a descrambler operative to receive a plurality of scrambled packets in a packet stream and descramble any of the scrambled packets, and a packet selector operative to transmit a modified packet stream including at least one of the descrambled packets and at least one of the scrambled packets.
  • In another aspect of a preferred embodiment of the present invention the apparatus further includes a packet processor operative to modify any of the packets.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to move a data segment within a payload of any of the packets from a first location within the payload to a second location within the payload.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to overwrite at least a portion of the first location.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to overwrite with any of zeroes, stuffing bytes, and padding bytes.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to overwrite data designated as undesirable within a payload of any of the packets.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to overwrite with any of zeroes, stuffing bytes, and padding bytes.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to change the value of at least one byte of any of the packets in accordance with a predefined processing decision.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to change the byte in any of the descrambled packets.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to change the value of at least one bit of any of the packets in accordance with a predefined processing decision.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to change the bit in any of the descrambled packets.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to drop any of the packets from the received packet stream in accordance with a predefined processing decision.
  • In another aspect of a preferred embodiment of the present invention the stream includes a plurality of independent video elements and at least one video element that is dependent on any of the independent video elements, and the packet processor is operative to remove any of the dependent video elements from the video stream, thereby resulting in the modified packet stream.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to modify any of the video elements to maintain the validity of the processed video stream with respect to a protocol.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to hold any of the packets until the packets collectively comprise a predefined processing unit, and where the packet selector is operative to transmit the held packets including the processing unit.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to hold any of the packets until the packets collectively comprise the data of at least one picture, and where the packet selector is operative to transmit the held packets including the data of the picture.
  • In another aspect of a preferred embodiment of the present invention the packet selector is operative to retransmit the held packets at least one additional time.
  • In another aspect of a preferred embodiment of the present invention the packet selector is operative to retransmit the held packets a sufficient number of times in order to effect a predetermined slow-down factor of a display of the picture.
  • In another aspect of a preferred embodiment of the present invention the packet selector is operative to retransmit where the picture is an MPEG-protocol B-picture.
  • In another aspect of a preferred embodiment of the present invention the packet selector is operative to transmit a sufficient number of null pictures in order to effect a predetermined slowdown factor of a display of the picture.
  • In another aspect of a preferred embodiment of the present invention the packet selector is operative to transmit where the picture is either of an MPEG-protocol P-picture and an MPEG-protocol I-picture.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to convert any of the packets including data from multiple pictures into a plurality of individual packets, each including data from only one of the multiple pictures.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to modify any of the packets to maintain the slowdown factor.
  • In another aspect of a preferred embodiment of the present invention the apparatus further includes modifying any of the packets to maintain the validity of the packet stream with respect to an MPEG protocol.
  • In another aspect of a preferred embodiment of the present invention apparatus is provided for providing a processed MPEG video stream including a descrambler operative to receive an MPEG video stream as a plurality of scrambled packets including data that are designated as desirable data and data that are designated as undesirable data and descramble any of the scrambled packets, and a packet selector operative to transmit a processed MPEG video stream including at least one of the descrambled packets and at least one of the scrambled packets.
  • In another aspect of a preferred embodiment of the present invention the apparatus further includes a packet processor operative to remove any of the undesirable data from any of the descrambled packets, thereby resulting in a modified descrambled packet, and where the packet selector is operative to transmit the modified descrambled packet.
  • In another aspect of a preferred embodiment of the present invention the desirable data includes any of I-picture data and header data that is necessary to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • In another aspect of a preferred embodiment of the present invention the undesirable data includes any of P-picture data, B-picture data, and header data that not is necessary to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to modify any header information in the processed MPEG video stream to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to drop any of the packets having only the undesirable data.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to overwrite at least a portion of the undesirable data with any of zeroes, stuffing bytes, and padding bytes.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to pad an adaptation field within any of the packets having the undesirable data with a sufficient number of bytes to overwrite at least a portion of the undesirable data.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to move the desirable data within a payload of any of the packets from a first location within the payload to a second location within the payload.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to overwrite at least a portion of the first location.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to overwrite at least a portion of the first location with any of zeroes, stuffing bytes, and padding bytes.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to pad an adaptation field within the packet with a sufficient number of bytes to overwrite at least a portion of the first location.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to overwrite a PES header in any of the packets with PES header stuffing bytes, where the PES header is followed by the desirable data, and set a flags byte of the PES header to indicate that no PES header options are present.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to generate and insert into processed MPEG video stream a TS packet including a generated PES header where the PES header is required to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to generate and insert into the processed MPEG video stream a TS packet including a generated PCR where the PCR is required to maintain the validity of the processed MPEG video stream with respect to an MPEG protocol.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to generate and insert a sufficient number of null pictures into the processed MPEG video stream to achieve a predefined playback speed.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to, where any of the packets includes an ES sequence header, set a bit_rate_value of the ES sequence header to a peak bit rate at which the processed MPEG video stream will be transmitted, and set a vbv_buffer_size_value of the ES sequence header equal to that which is indicated for a Main Profile at Main Level.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to, where any of the packets includes a picture header of an I-picture, set a temporal_reference value in the packet to zero set a vbv_delay in the packet to indicate that no value is specified.
  • In another aspect of a preferred embodiment of the present invention the packet processor is operative to, where any of the packets includes an adaptation field that may be removed without compromising the validity of the processed MPEG video stream, replace a flags byte of the adaptation field with zeros, and replace all remaining bytes of the adaptation field with stuffing bytes.
  • It is appreciated throughout the specification and claims that references to modifying data may be understood as referring to data modification at the bit or byte level.
  • The disclosures of all patents, patent applications, and other publications mentioned in this specification and of the patents, patent applications, and other publications cited therein are hereby incorporated by reference in their entirety.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the appended drawings in which:
  • FIG. 1 is a simplified block diagram of a home video server architecture, useful in understanding the present invention;
  • FIG. 2 is a simplified conceptual illustration of aspects of MPEG-2 streams and packets, useful in understanding the present invention;
  • FIG. 3 is a simplified block diagram of a scrambled packet stream processor, constructed and operative in accordance with a preferred embodiment of the present invention;
  • FIGS. 4A-4J are simplified flowchart illustrations of packet processing decisions, operative in accordance with a preferred embodiment of the present invention;
  • FIG. 5 is a simplified block diagram of a packet stream processing architecture, constructed and operative in accordance with a preferred embodiment of the present invention; and
  • FIG. 6 is a simplified flowchart illustration of an alternate method of scrambled packet processing, operative in accordance with a preferred embodiment of the present invention.
  • DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
  • Preferred embodiments of the present invention are now described with respect to MPEG-2 Elementary Streams and their transmission via MPEG-2 Transport Stream packets. It is noted, however, that the present invention is not limited to use with MPEG-2 streams and packets, and may be utilized in other packet-based communications systems.
  • Reference is now made to FIG. 2, which is a simplified conceptual illustration of aspects of MPEG-2 streams and packets, useful in understanding the present invention. In FIG. 2 an MPEG-2 Elementary Stream (ES) 200 is shown comprising an alternating stream of header portions 202 and video portions 204. ES 200 may be segmented, with each ES segment packetized into one or more Packetized Elementary Stream (PES) packets 206. Each PES packet 206 includes a PES header 208 followed by a PES payload 210, where each PES payload 210 stores a portion of an ES segment. Likewise, each PES packet 206 may be packetized into one or more Transport Stream (TS) packets 212. Each TS packet 212 includes a TS header 214, optionally followed by an adaptation field 216, and followed by a TS payload 218, where each TS packet 212 stores a portion of a PES packet 206.
  • Video portions 204 of ES 200 typically include groups of pictures (GOP), where each picture is encoded as one of three picture types: an Intra picture, or I-picture, where all the data for the picture are held within the picture itself; a Predicted picture, or P-picture, where some of the image data are predicted from the previous I or P picture; and a Bi-directionally Predicted picture, or B-picture, where some of the image data are predicted from the next I- or P-picture and some from the previous I- or P-picture. The structure of a GOP typically starts with an I-picture followed by a combination of P- and B-pictures, such as in the sequence IBBPBBPBBPBB, although for coding efficiency the order of the pictures within the GOP is typically different than presentation order of the pictures. Each coded picture is preceded by a start code, typically a bit string of 32 or more bits which starts byte-aligned with the 24-bit value 0x000001 and which may be preceded by any number of zero bytes. The start code provides information about the ES data that follow the start code. Individual pictures may vary in size, and are typically large enough to fill many TS packets. The start and end of a picture is not necessarily aligned with the start and end of a TS or PES packet.
  • PES header 208 may include timestamps which indicate when to decode or display pictures stored in PES payload 210. PES header 208 must start at the beginning of a TS packet, and may be followed by any part of the ES, including any part (i.e., beginning, middle, or end) of header portion 202 or video portion 204.
  • Reference is now made to FIG. 3, which is a simplified block diagram of a scrambled packet stream processor, constructed and operative in accordance with a preferred embodiment of the present invention. In FIG. 3, a scrambled packet stream, such as an MPEG-2 TS packet stream, is descrambled by a descrambler 300 in accordance with conventional techniques. Each packet is then processed by a packet processor 302 where the decision is made to drop the packet, forward the packet as-is in scrambled or descrambled form, alter and forward the scrambled or descrambled packet, or insert generated packets into the scrambled packet stream. A preferred method of operation of packet processor 302 is described in greater detail hereinbelow with reference to FIGS. 4A-4J. The decision is then forwarded to a packet selector 304. Packets that have been altered, that are to be forwarded as-is in scrambled or descrambled form, or that have been generated are forwarded by packet processor 302 to packet selector 304 as well. For each scrambled packet in the scrambled packet stream, packet selector 304 generates a processed packet stream by carrying out the decision made by packet processor 302 and either drops the packet, forwards the scrambled packet as is, replaces the packet with its altered version or as-is descrambled version, and/or inserts a generated packet into the scrambled packet stream.
  • Reference is now made to FIGS. 4A-4J, which are simplified flowchart illustrations of packet processing decisions, such as may be carried out by packet processor 302 (FIG. 3), operative in accordance with a preferred embodiment of the present invention. The packet processing decisions shown in FIGS. 4A-4J are typically carried out in support of fast-forward viewing of MPEG-2 streams, in which a TS packet stream is purged of packets that do not include data that are designated as desirable, such as I-picture data (including I-picture header information) or other critical header data. TS packets that include desirable data are either forwarded unmodified and in scrambled form, or are modified, such as by purging data that are designated as undesirable, such as B- and P-picture data, or by changing header field values, and forwarded in descrambled form.
  • In FIG. 4A, a descrambled TS packet is received. If the TS packet payload contains only data that are designated as undesirable, such as P-picture or B-picture data, PES header information, ES header data that are not required to maintain the validity of the MPEG stream, or any combination thereof, the entire packet is dropped (i.e., removed) from the stream.
  • In FIG. 4B, a descrambled TS packet is received in which the TS packet payload starts with data that are designated as undesirable, such as P- or B-picture data, and that is followed by data that are designated as desirable, such as I-picture data. The P- or B-picture data may be removed by overwriting them at the bit or byte level with zeroes which represent ES stuffing bytes (i.e., 0x00) which are ignored by the MPEG decoder. Alternatively, if the TS packet includes an adaptation field, the adaptation field may be expanded by padding it with a sufficient number of stuffing bytes to overwrite the P- or B-picture data bytes until the I-picture boundary is reached. A flags byte is then added if one does not exist, and the adaptation_field_length is then changed to reflect the increased size of the adaptation field. If no adaptation field is present, one may be created by setting the relevant TS packet header flag, including a length byte set to the size of the adaptation field, and, as needed, a flags byte set to 0x00followed by a sufficient number of adaptation field stuffing bytes (0xFF) until the I-picture startcode is reached.
  • In FIG. 4C, a descrambled TS packet is received in which the TS packet payload starts with data that are designated as desirable, such as I-picture data, followed only by data that are designated as undesirable, such as P-picture and/or B-picture data and/or ES header data that are not required to maintain the validity of the MPEG stream. The I-picture data is preferably moved to the end of the payload. The data at the start of the payload that is not desired may then be eliminated by overwriting them with ES stuffing bytes (i.e., 0x00) until the I-picture boundary is reached. Alternatively, the data that are not desired may be overwritten by expanding or inserting an adaptation field and padding it with stuffing bytes (i.e., 0xFF) as described above (FIG. 4B) until the I-picture boundary is reached.
  • In FIG. 4D, a descrambled TS packet is received in which the TS packet payload contains only PES header information followed by data that are designated as desirable, such as I-picture data and/or ES header data that are required to maintain the validity of the MPEG stream. The PES header may be eliminated by overwriting it with an allowable number (i.e., 32 bytes in the MPEG standard) of PES header stuffing bytes (i.e., 0xFF), and by setting the flags byte of the PES header to 0x00(i.e., setting the flags to indicate that no PES header options are present). Alternatively, the PES header may be eliminated by moving the I-picture data and/or ES header data to the end of the packet payload if the data are not already located at the end of the packet payload, by expanding or inserting an adaptation field and padding it with adaptation layer stuffing bytes (i.e., 0xFF) as described above (FIG. 4B), and by clearing the payload_unit_start_indicator in the TS header to indicate that there is no PES header present.
  • In FIG. 4E, if a PES header is required to maintain the validity of the MPEG stream, a TS packet may be generated including a generated PES header, and preferably no other payload data, and inserted into the TS packet stream. Preferably, the frame_rate_code most recently encountered in the sequence header portion of the ES header data is read. The frame_rate_code indicates the frame rate of the encoded video and is used to determine the correct display and/or decode timestamps for the generated PES header in accordance with conventional techniques. The TS packet payload may be reduced to the size required for the PES header through the use of a padded adaptation field, if required.
  • In FIG. 4F, if a Program Clock Reference (PCR) is required to maintain the validity of the MPEG stream, a TS packet may be generated including a generated PCR inserted into the TS packet stream. In order to generate a valid buffer model and to control the transmission of additional data, an accurate PCR correctly linked to the PES timestamps must be maintained. The last transmitted PCR, the number of packets sent since the last PCR was sent (and hence the number of bits sent), and the output bit rate are preferably maintained. If a constant bit-rate is in use, when a PCR value is required a “soft PCR” can be calculated by adding to the last transmitted PCR the time taken to send the number of packets transmitted at the bit-rate specified. When a PCR is transmitted, the soft PCR value is used, and the remembered PCR value is updated. Since PCRs must be transmitted frequently, a target time for the transmission of the next PCR is preferably maintained and compared with the end time of the current packet. If the current packet will finish being transmitted after the target time, then the PCR must be transmitted first. Once the correct time is identified, the PCR is transmitted.
  • In FIG. 4G, it may be necessary to display a given I-picture more than once to achieve a given playback speed. Thus, if the repetition of an I-picture is required to achieve a desired speed, one or more null pictures may be generated in accordance with conventional techniques and inserted into the TS packet stream. Typically, a null picture repeats the presentation of the most recently encountered reference picture, which is either an I- or P-picture, and is coded as a P-picture. Preferably, the horizontal_size_value and vertical_size_value most recently encountered in the sequence header portion of the ES header data are read. When generating null pictures these values are used to ensure that the generated frames are the same size as other frames in the stream. The temporal_reference value in the null picture header is preferably incremented relative to the previously encountered temporal_reference value.
  • In FIG. 41, a descrambled TS packet is received in which ES sequence header information is stored. In order to maintain the validity of the MPEG stream, the bit_rate_value and vbv_buffer_size_value of the ES sequence header are preferably changed. The bit_rate_value specifies the maximum bit rate at which the MPEG decoder buffer may operate, which, in practice, defines the peak bit-rate of the stream. This value is preferably set to the peak bit rate at which the stream will be transmitted and which may be set in accordance with conventional techniques. The vbv_buffer_size_value defines the size of the decoder buffer that is required to decode the stream. This value is preferably set equal to that which is indicated for the Main Profile at Main Level (MP@ML) in accordance with conventional techniques.
  • In FIG. 4I, a descrambled TS packet is received in which the picture header of an I-picture is stored. In order to maintain the validity of the MPEG stream, the temporal_reference and vbv_delay of the picture header are preferably changed. The temporal_reference defines when, in display order, the I-picture is to be displayed. The temporal_reference value in the current TS packet is preferably set to zero. The vbv_delay typically defines the length of time that the data for the current picture will remain in the decoder buffer. The value in the current TS packet is preferably set to all ones to indicate that no value is specified.
  • In FIG. 4J, a descrambled TS packet is received including an adaptation field. If the decision is made to retain the TS packet, and the adaptation field may be removed without compromising the validity of the MPEG stream, the flags byte (i.e., the second byte of the adaptation field) may be replaced with zeros, and all the remaining adaptation bytes may be replaced with stuffing bytes (0xff). Since adaptation fields are not scrambled, these changes may be alternatively made to the corresponding scrambled packet. If no other changes are made to the packet, the modified scrambled packet may be transmitted. Otherwise, the modified descrambled packet is transmitted.
  • In FIG. 4K, after the packet processing decisions of FIGS. 4A-4J have been made, if the TS packet is to be dropped, packet selector 304 is so notified. If the TS packet is to be forwarded, and no changes were made to the TS packet, packet selector 304 is notified to forward the scrambled version of the packet in the MPEG stream as is. If any changes where made to the descrambled packet payload, including reducing its size, packet selector 304 is notified to replace the scrambled version of the packet in the MPEG stream with the modified descrambled version. If no changes were made to the descrambled packet payload, but changes were made to the packet header, such as to the adaptation field, packet selector 304 is notified to forward the modified scrambled packet. Otherwise, packet selector 304 is notified to forward the modified descrambled packet.
  • Reference is now made to FIG. 5, which is a simplified block diagram of a packet stream processing architecture, constructed and operative in accordance with a preferred embodiment of the present invention. The architecture of FIG. 5 may be employed to carry out the packet processing decisions of FIGS. 4A-4J. In the architecture of FIG. 5, two packet buffers 500 and 502 are respectively used to read in a current TS packet and the packet following the current packet. Since picture start codes may straddle packets, it may be necessary to look into the next packet to identify a start code that begins in the current packet or to identify whether the start code that begins in the current packet is for an I-, P-, or B-picture.
  • When a packet is placed into a packet buffer, a data pointer 504, 506 is preferably set to indicate where the packet payload is to be found. If the packet has no payload (e.g., it is a PCR-only packet), then the packet may be dropped and another packet may be loaded. Likewise, a flag 508, 510 may be initialized that will be used to indicate if the packet should be transmitted in scrambled or descrambled form.
  • To calculate the payload start, any adaptation field bytes must be skipped, which may later be removed as described hereinabove. The length of the adaptation field is specified by the first byte of the adaptation field. Next, any PES header bytes, whose presence is indicated by the payload_unit_start_indicator flag in the TS header, should be skipped. The PES header bytes may also be removed by replacing them with adaptation field stuffing as described hereinabove. A PES header will start after any adaptation data, and its length is indicated in the ninth byte of the PES header of an audio or video stream. The remaining data in the packet represents the payload.
  • A PID filter 512 may be used to ensure that only TS packets with desired PIDs are processed by the stream processor. For example, where a fast-forward trick mode video stream is desired without audio, PID filter 512 may be used to filter out any TS packets with only audio data.
  • Reference is now made to FIG. 6, which is a simplified flowchart illustration of an alternate method of scrambled packet processing, operative in accordance with a preferred embodiment of the present invention. The method of FIG. 6 is typically carried out in support of slow-motion viewing of MPEG-2 streams, in which previously transmitted pictures are caused to be displayed multiple times in accordance with a slow-down factor.
  • In the method of FIG. 6, a scrambled TS packet is received and descrambled, such as at descrambler 300 (FIG. 3). The descrambled packet is then examined, such as at packet processor 302, to determine whether or not the packet contains data from an I-, P-, or B-picture. If so, the packet is held, such as in a buffer, together with other packets of the same picture type until a predefined processing unit, such as an entire I-, P-, or B-picture, is formed. If a packet is received that contains data from multiple pictures, typically being the end of one picture and the beginning of another, the packet is converted into multiple packets using conventional techniques or other techniques described hereinabove, where each packet contains data from only one of the pictures. The packet that contains data belonging to the currently held picture thus completes the data for the picture.
  • Once packets for an entire picture are held, slow-motion may be achieved as follows. If the picture is an I- or P-picture, the packets may be transmitted once, such as at packet selector 304, followed by one or more null pictures instructing the receiver to display the picture one or more additional times in accordance with a predetermined slow-down factor. If the picture is a B-picture, all the packets for the B-picture are transmitted once, and then are retransmitted one or more times in accordance with the slow-down factor. The packets of the currently held picture may be discarded once they are no longer required for transmission.
  • Any of the received packets may be modified to maintain the slow-down factor maintain and/or the validity of the MPEG stream using conventional techniques or other techniques described hereinabove. For example, the temporal_value is preferably replaced with a multiple of the original temporal_value which represents the slow-down factor, and the vbv_delay of all the headers is preferably replaced with ones as described hereinabove. Packets that have been modified are preferably transmitted in descrambled form, while packets that have not been modified may be transmitted in either scrambled or descrambled form.
  • It is appreciated that one or more of the steps of any of the methods described herein may be omitted or carried out in a different order than that shown, without departing from the true spirit and scope of the invention.
  • While the methods and apparatus disclosed herein may or may not have been described with reference to specific hardware or software, it is appreciated that the methods and apparatus described herein may be readily implemented in hardware or software using conventional techniques.
  • While the present invention has been described with reference to one or more specific embodiments, the description is intended to be illustrative of the invention as a whole and is not to be construed as limiting the invention to the embodiments shown and described herein. It is appreciated that the true spirit and scope of the present invention includes both combinations and subcombinations of the various features described herein, as well as variations and modifications thereof which would occur to persons skilled in the art. For example, the modified packet stream of the present invention may be scrambled and/or encrypted using conventional techniques prior to transmission.

Claims (89)

1-88. (canceled)
89. A method for processing a packet-based scrambled stream, the method comprising:
receiving a plurality of scrambled packets in a packet stream;
descrambling any of said scrambled packets; and
transmitting a modified packet stream comprising at least one of said descrambled packets and at least one of said scrambled packets.
90. A method according to claim 89 and further comprising moving a data segment within a payload of any of said packets from a first location within said payload to a second location within said payload.
91. A method according to claim 90 and further comprising overwriting at least a portion of said first location.
92. A method according to claim 91 wherein said overwriting step comprises overwriting with any of zeroes, stuffing bytes, and padding bytes.
93. A method according to claim 89 and further comprising overwriting data designated as undesirable within a payload of any of said packets.
94. A method according to claim 93 wherein any of said overwriting steps comprises overwriting with any of zeroes, stuffing bytes, and padding bytes.
95. A method according to claim 89 and further comprising changing the value of at least one byte of any of said packets in accordance with a predefined processing decision.
96. A method according to claim 95 wherein said changing step comprises changing said byte in any of said descrambled packets.
97. A method according to claim 89 and further comprising changing the value of at least one bit of any of said packets in accordance with a predefined processing decision.
98. A method according to claim 97 wherein said changing step comprises changing said bit in any of said descrambled packets.
99. A method according to claim 89 and further comprising dropping any of said packets from said received packet stream in accordance with a predefined processing decision.
100. A method according to claim 89 wherein said receiving step comprises receiving a video stream comprising a plurality of independent video elements and at least one video element that is dependent on any of said independent video elements, and further comprising removing any of said dependent video elements from said video stream, thereby resulting in said modified packet stream.
101. A method according to claim 100 and further comprising modifying any of said video elements to maintain the validity of said processed video stream with respect to a protocol.
102. A method according to claim 89 and further comprising holding any of said packets until said packets collectively comprise a predefined processing unit, and wherein said transmitting step comprises transmitting said held packets comprising said processing unit.
103. A method according to claim 89 and further comprising holding any of said packets until said packets collectively comprise the data of at least one picture, and wherein said transmitting step comprises transmitting said held packets comprising the data of said picture.
104. A method according to claim 103 and further comprising retransmitting said held packets at least one additional time.
105. A method according to claim 104 wherein said retransmitting step comprises retransmitting a sufficient number of times in order to effect a predetermined slow-down factor of a display of said picture.
106. A method according to claim 104 wherein said retransmitting step comprises retransmitting where said picture is an MPEG-protocol B-picture.
107. A method according to claim 103 and further comprising transmitting a sufficient number of null pictures in order to effect a predetermined slow-down factor of a display of said picture.
108. A method according to claim 107 wherein said transmitting null pictures step comprises transmitting where said picture is either of an MPEG-protocol P-picture and an MPEG-protocol I-picture.
109. A method according to claim 103 and further comprising converting any of said packets including data from multiple pictures into a plurality of individual packets, each including data from only one of said multiple pictures.
110. A method according to claim 105 and further comprising modifying any of said packets to maintain said slow-down factor.
111. A method according to claim 89 and further comprising modifying any of said packets to maintain the validity of said packet stream with respect to an MPEG protocol.
112. A method for providing a processed MPEG video stream, the method comprising:
receiving an MPEG video stream as a plurality of scrambled packets comprising data that are designated as desirable data and data that are designated as undesirable data;
descrambling any of said scrambled packets; and
transmitting a processed MPEG video stream comprising at least one of said descrambled packets and at least one of said scrambled packets.
113. A method according to claim 112 and further comprising removing any of said undesirable data from any of said descrambled packets, thereby resulting in a modified descrambled packet, and wherein said transmitting step comprises transmitting said modified descrambled packet.
114. A method according to claim 112 wherein the method further comprises designating as desirable data any of I-picture data and header data that is necessary to maintain the validity of said processed MPEG video stream with respect to an MPEG protocol.
115. A method according to claim 112 wherein the method further comprises designating as undesirable data any of P-picture data, B-picture data, and header data that not is necessary to maintain the validity of said processed MPEG video stream with respect to an MPEG protocol.
116. A method according to claim 112 and further comprising modifying any header information in said processed MPEG video stream to maintain the validity of said processed MPEG video stream with respect to an MPEG protocol.
117. A method according to claim 112 wherein said removing step comprises dropping any of said packets having only said undesirable data.
118. A method according to claim 112 wherein said removing step comprises overwriting at least a portion of said undesirable data with any of zeroes, stuffing bytes, and padding bytes.
119. A method according to claim 112 wherein said removing step comprises padding an adaptation field within any of said packets having said undesirable data with a sufficient number of bytes to overwrite at least a portion of said undesirable data.
120. A method according to claim 112 wherein said removing step comprises moving said desirable data within a payload of any of said packets from a first location within said payload to a second location within said payload.
121. A method according to claim 120 wherein said removing step comprises overwriting at least a portion of said first location.
122. A method according to claim 120 wherein said removing step comprises overwriting at least a portion of said first location with any of zeroes, stuffing bytes, and padding bytes.
123. A method according to claim 120 wherein said removing step comprises padding an adaptation field within said packet with a sufficient number of bytes to overwrite at least a portion of said first location.
124. A method according to claim 112 wherein said removing step comprises:
overwriting a PES header in any of said packets with PES header stuffing bytes, where said PES header is followed by said desirable data; and
setting a flags byte of said PES header to indicate that no PES header options are present.
125. A method according to claim 112 wherein the method further comprises generating and inserting into said processed MPEG video stream a TS packet including a generated PES header where said PES header is required to maintain the validity of said processed MPEG video stream with respect to an MPEG protocol.
126. A method according to claim 112 wherein the method further comprises generating and inserting into said processed MPEG video stream a TS packet including a generated PCR where said PCR is required to maintain the validity of said processed MPEG video stream with respect to an MPEG protocol.
127. A method according to claim 112 wherein the method further comprises generating and inserting a sufficient number of null pictures into said processed MPEG video stream to achieve a predefined playback speed.
128. A method according to claim 112 wherein said removing step comprises, where any of said packets includes an ES sequence header:
setting a bit_rate_value of said ES sequence header to a peak bit rate at which said processed MPEG video stream will be transmitted; and
setting a vbv_buffer_size_value of said ES sequence header equal to that which is indicated for a Main Profile at Main Level.
129. A method according to claim 112 wherein said removing step comprises, where any of said packets includes a picture header of an I-picture:
setting a temporal_reference value in said packet to zero
setting a vbv_delay in said packet to indicate that no value is specified.
130. A method according to claim 112 wherein said removing step comprises, where any of said packets includes an adaptation field that may be removed without compromising the validity of the said processed MPEG video stream:
replacing a flags byte of said adaptation field with zeros; and
replacing all remaining bytes of said adaptation field with stuffing bytes.
131. A scrambled packet stream processor comprising:
a descrambler operative to descramble any packet in a scrambled packet stream;
a packet processor operative to perform at least one packet processing decision upon any of said packets resulting in any of generating a packet, deciding to drop any of said packets, altering any of said packets, and deciding to forward any of said packets from said stream; and
a packet selector responsive to said decision and operative to perform any of inserting said generated packet into said stream, dropping any of said packets, and forwarding any of said packets, wherein said packet selector forwards at least one of said scrambled packets and at least one descrambled packet.
132. A packet stream processing architecture comprising:
a first packet buffer into which a first TS packet from a packet stream may be placed;
a second packet buffer into which a second TS packet that follows said first TS packet in said packet stream may be placed;
a first data pointer operative to indicate the location of the packet payload of said first packet;
a second data pointer operative to indicate the location of the packet payload of said second packet;
a first flag operative to indicate if said first packet should be transmitted in scrambled or descrambled form; and
a second flag operative to indicate if said second packet should be transmitted in scrambled or descrambled form.
133. A packet stream processing architecture according to claim 132 and further comprising a PID filter operative to selectively place any of said packets into any of said buffers in accordance with predefined selection criteria.
134. Apparatus for processing a packet-based scrambled stream comprising:
a descrambler operative to receive a plurality of scrambled packets in a packet stream and descramble any of said scrambled packets; and
a packet selector operative to transmit a modified packet stream comprising at least one of said descrambled packets and at least one of said scrambled packets.
135. Apparatus according to claim 134 and further comprising a packet processor operative to modify any of said packets.
136. Apparatus according to claim 135 wherein said packet processor is operative to move a data segment within a payload of any of said packets from a first location within said payload to a second location within said payload.
137. Apparatus according to claim 136 wherein said packet processor is operative to overwrite at least a portion of said first location.
138. Apparatus according to claim 137 wherein said packet processor is operative to overwrite with any of zeroes, stuffing bytes, and padding bytes.
139. Apparatus according to claim 135 wherein said packet processor is operative to overwrite data designated as undesirable within a payload of any of said packets.
140. Apparatus according to claim 139 wherein said packet processor is operative to overwrite with any of zeroes, stuffing bytes, and padding bytes.
141. Apparatus according to claim 135 wherein said packet processor is operative to change the value of at least one byte of any of said packets in accordance with a predefined processing decision.
142. Apparatus according to claim 141 wherein said packet processor is operative to change said byte in any of said descrambled packets.
143. Apparatus according to claim 135 wherein said packet processor is operative to change the value of at least one bit of any of said packets in accordance with a predefined processing decision.
144. Apparatus according to claim 143 wherein said packet processor is operative to change said bit in any of said descrambled packets.
145. Apparatus according to claim 135 wherein said packet processor is operative to drop any of said packets from said received packet stream in accordance with a predefined processing decision.
146. Apparatus according to claim 135 wherein said stream comprises a plurality of independent video elements and at least one video element that is dependent on any of said independent video elements, and wherein said packet processor is operative to remove any of said dependent video elements from said video stream, thereby resulting in said modified packet stream.
147. Apparatus according to claim 146 wherein said packet processor is operative to modify any of said video elements to maintain the validity of said processed video stream with respect to a protocol.
148. Apparatus according to claim 135 wherein said packet processor is operative to hold any of said packets until said packets collectively comprise a predefined processing unit, and wherein said packet selector is operative to transmit said held packets comprising said processing unit.
149. Apparatus according to claim 135 wherein said packet processor is operative to hold any of said packets until said packets collectively comprise the data of at least one picture, and wherein said packet selector is operative to transmit said held packets comprising the data of said picture.
150. Apparatus according to claim 149 wherein said packet selector is operative to retransmit said held packets at least one additional time.
151. Apparatus according to claim 149 wherein said packet selector is operative to retransmit said held packets a sufficient number of times in order to effect a predetermined slow-down factor of a display of said picture.
152. Apparatus according to claim 150 wherein said packet selector is operative to retransmit where said picture is an MPEG-protocol B-picture.
153. Apparatus according to claim 149 wherein said packet selector is operative to transmit a sufficient number of null pictures in order to effect a predetermined slow-down factor of a display of said picture.
154. Apparatus according to claim 153 wherein said packet selector is operative to transmit where said picture is either of an MPEG-protocol P-picture and an MPEG-protocol I-picture.
155. Apparatus according to claim 149 wherein said packet processor is operative to convert any of said packets including data from multiple pictures into a plurality of individual packets, each including data from only one of said multiple pictures.
156. Apparatus according to claim 151 wherein said packet processor is operative to modify any of said packets to maintain said slow-down factor.
157. Apparatus according to claim 131 and further comprising modifying any of said packets to maintain the validity of said packet stream with respect to an MPEG protocol.
158. Apparatus for providing a processed MPEG video stream comprising:
a descrambler operative to receive an MPEG video stream as a plurality of scrambled packets comprising data that are designated as desirable data and data that are designated as undesirable data and descramble any of said scrambled packets; and
a packet selector operative to transmit a processed MPEG video stream comprising at least one of said descrambled packets and at least one of said scrambled packets.
159. Apparatus according to claim 158 and further comprising a packet processor operative to remove any of said undesirable data from any of said descrambled packets, thereby resulting in a modified descrambled packet, and wherein said packet selector is operative to transmit said modified descrambled packet.
160. Apparatus according to claim 158 wherein said desirable data comprises any of I-picture data and header data that is necessary to maintain the validity of said processed MPEG video stream with respect to an MPEG protocol.
161. Apparatus according to claim 158 wherein said undesirable data comprises any of P-picture data, B-picture data, and header data that not is necessary to maintain the validity of said processed MPEG video stream with respect to an MPEG protocol.
162. Apparatus according to claim 158 wherein said packet processor is operative to modify any header information in said processed MPEG video stream to maintain the validity of said processed MPEG video stream with respect to an MPEG protocol.
163. Apparatus according to claim 158 wherein said packet processor is operative to drop any of said packets having only said undesirable data.
164. Apparatus according to claim 158 wherein said packet processor is operative to overwrite at least a portion of said undesirable data with any of zeroes, stuffing bytes, and padding bytes.
165. Apparatus according to claim 158 wherein said packet processor is operative to pad an adaptation field within any of said packets having said undesirable data with a sufficient number of bytes to overwrite at least a portion of said undesirable data.
166. Apparatus according to claim 158 wherein said packet processor is operative to move said desirable data within a payload of any of said packets from a first location within said payload to a second location within said payload.
167. Apparatus according to claim 166 wherein said packet processor is operative to overwrite at least a portion of said first location.
168. Apparatus according to claim 166 wherein said packet processor is operative to overwrite at least a portion of said first location with any of zeroes, stuffing bytes, and padding bytes.
169. Apparatus according to claim 166 wherein said packet processor is operative to pad an adaptation field within said packet with a sufficient number of bytes to overwrite at least a portion of said first location.
170. Apparatus according to claim 158 wherein said packet processor is operative to:
overwrite a PES header in any of said packets with PES header stuffing bytes, where said PES header is followed by said desirable data; and
set a flags byte of said PES header to indicate that no PES header options are present.
171. Apparatus according to claim 158 wherein said packet processor is operative to generate and insert into processed MPEG video stream a TS packet including a generated PES header where said PES header is required to maintain the validity of said processed MPEG video stream with respect to an MPEG protocol.
172. Apparatus according to claim 158 wherein said packet processor is operative to generate and insert into said processed MPEG video stream a TS packet including a generated PCR where said PCR is required to maintain the validity of said processed MPEG video stream with respect to an MPEG protocol.
173. Apparatus according to claim 158 wherein said packet processor is operative to generate and insert a sufficient number of null pictures into said processed MPEG video stream to achieve a predefined playback speed.
174. Apparatus according to claim 158 wherein said packet processor is operative to, where any of said packets includes an ES sequence header:
set a bit_rate_value of said ES sequence header to a peak bit rate at which said processed MPEG video stream will be transmitted; and
set a vbv_buffer_size_value of said ES sequence header equal to that which is indicated for a Main Profile at Main Level.
175. Apparatus according to claim 158 wherein said packet processor is operative to, where any of said packets includes a picture header of an I-picture:
set a temporal_reference value in said packet to zero
set a vbv_delay in said packet to indicate that no value is specified.
176. Apparatus according to claim 158 wherein said packet processor is operative to, where any of said packets includes an adaptation field that may be removed without compromising the validity of the said processed MPEG video stream:
replace a flags byte of said adaptation field with zeros; and
replace all remaining bytes of said adaptation field with stuffing.
US10/498,888 2002-02-22 2003-02-17 Scrambled packet stream processing Active 2032-09-07 US9118941B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/498,888 US9118941B2 (en) 2002-02-22 2003-02-17 Scrambled packet stream processing

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB0204190.3 2002-02-22
GBGB0204190.3A GB0204190D0 (en) 2002-02-22 2002-02-22 Apparatus and methods for processing scrambled streams
US36063502P 2002-03-01 2002-03-01
US10/498,888 US9118941B2 (en) 2002-02-22 2003-02-17 Scrambled packet stream processing
PCT/IL2003/000124 WO2003071799A2 (en) 2002-02-22 2003-02-17 Scrambled packet stream processing

Publications (2)

Publication Number Publication Date
US20050157714A1 true US20050157714A1 (en) 2005-07-21
US9118941B2 US9118941B2 (en) 2015-08-25

Family

ID=27758834

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/498,888 Active 2032-09-07 US9118941B2 (en) 2002-02-22 2003-02-17 Scrambled packet stream processing

Country Status (7)

Country Link
US (1) US9118941B2 (en)
EP (1) EP1502437B1 (en)
AT (1) ATE470311T1 (en)
AU (1) AU2003208588A1 (en)
DE (1) DE60332828D1 (en)
IL (1) IL162470A0 (en)
WO (1) WO2003071799A2 (en)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040100981A1 (en) * 2002-11-25 2004-05-27 Kitchin Ducan M. Apparatus to speculatively identify packets for transmission and method therefor
US20040268400A1 (en) * 2003-06-26 2004-12-30 Microsoft Corporation Quick starting video content
US20040264489A1 (en) * 2003-06-30 2004-12-30 Klemets Anders E. Streaming of variable bit rate multimedia content
US20050044166A1 (en) * 2001-06-28 2005-02-24 Microsoft Corporation Startup methods and apparatuses for use in streaming content
US20060168295A1 (en) * 2003-06-27 2006-07-27 Microsoft Corporation Midstream Determination of Varying Bandwidth Availability
WO2007072248A2 (en) * 2005-12-23 2007-06-28 Koninklijke Philips Electronics N.V. A device for and a method of processing a data stream
US20070286246A1 (en) * 2003-05-01 2007-12-13 Genesis Microchip Inc. Multimedia interface
US20080008175A1 (en) * 2006-07-07 2008-01-10 Samsung Electronics Co., Ltd Method and apparatus for providing internet protocol datacasting(ipdc) service, and method and apparatus for processing ipdc service
US20080246711A1 (en) * 2003-09-18 2008-10-09 Genesis Microchip Inc. Using packet transfer for driving lcd panel driver electronics
US20090013369A1 (en) * 2005-04-28 2009-01-08 Samsung Electronics Co., Ltd. Device and Method for Initializing Decoder in Digital Broadcasting Receiver
US20090116818A1 (en) * 2007-11-01 2009-05-07 Taiji Sasaki Recording medium, playback apparatus, recording apparatus, playback method, and recording method
US7548948B2 (en) 2002-06-24 2009-06-16 Microsoft Corporation Client-side caching of streaming media content
US20090251616A1 (en) * 2005-04-28 2009-10-08 Samsung Electronics Co., Ltd. Apparatus and method for processing data in digital broadcasting receiver
US7783772B2 (en) 2004-04-30 2010-08-24 Microsoft Corporation Session description message extensions
US7839860B2 (en) 2003-05-01 2010-11-23 Genesis Microchip Inc. Packet based video display interface
US20100302985A1 (en) * 2009-05-28 2010-12-02 Symbol Technologies, Inc. Methods and apparatus for transmitting data based on interframe dependencies
US8059673B2 (en) 2003-05-01 2011-11-15 Genesis Microchip Inc. Dynamic resource re-allocation in a packet based video display interface
US20120051539A1 (en) * 2010-08-25 2012-03-01 Mukta Kar Transport of partially encrypted media
US8156238B2 (en) 2009-05-13 2012-04-10 Stmicroelectronics, Inc. Wireless multimedia transport method and apparatus
US8204076B2 (en) * 2003-05-01 2012-06-19 Genesis Microchip Inc. Compact packet based multimedia interface
US8385544B2 (en) 2003-09-26 2013-02-26 Genesis Microchip, Inc. Packet based high definition high-bandwidth digital content protection
US8429440B2 (en) 2009-05-13 2013-04-23 Stmicroelectronics, Inc. Flat panel display driver method and system
US8671234B2 (en) 2010-05-27 2014-03-11 Stmicroelectronics, Inc. Level shifting cable adaptor and chip system for use with dual-mode multi-media device
US20140270705A1 (en) * 2013-03-15 2014-09-18 Verimatrix, Inc. Reformatting media streams to include auxiliary data

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105809046A (en) * 2010-12-15 2016-07-27 成都科创知识产权研究所 Efficient encryption method and system of data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6028932A (en) * 1994-11-26 2000-02-22 Lg Electronics Inc. Copy prevention method and apparatus for digital video system
US6445738B1 (en) * 1996-04-25 2002-09-03 Opentv, Inc. System and method for creating trick play video streams from a compressed normal play video bitstream
US20030237089A1 (en) * 2000-11-15 2003-12-25 Wajs Andrew Augustine System for scrambling content, and system for descrambling scrambled content

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517502A (en) 1995-03-02 1996-05-14 Zenith Electronics Corp. Upstream transmission using multiple transmission tags and downstream acknowledgements in conditional access packets
CN1168304C (en) * 1999-03-15 2004-09-22 汤姆森许可公司 Global copy protection system for digital home networks
CA2408232C (en) 2000-05-02 2008-01-15 General Instrument Corporation Method and apparatus for enabling random access to individual pictures in an encrypted video stream
JP4331876B2 (en) * 2000-09-18 2009-09-16 パナソニック株式会社 Digital signal recording / playback system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6028932A (en) * 1994-11-26 2000-02-22 Lg Electronics Inc. Copy prevention method and apparatus for digital video system
US6445738B1 (en) * 1996-04-25 2002-09-03 Opentv, Inc. System and method for creating trick play video streams from a compressed normal play video bitstream
US20030237089A1 (en) * 2000-11-15 2003-12-25 Wajs Andrew Augustine System for scrambling content, and system for descrambling scrambled content

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044166A1 (en) * 2001-06-28 2005-02-24 Microsoft Corporation Startup methods and apparatuses for use in streaming content
US7725557B2 (en) 2002-06-24 2010-05-25 Microsoft Corporation Client-side caching of streaming media content
US7548948B2 (en) 2002-06-24 2009-06-16 Microsoft Corporation Client-side caching of streaming media content
US7385926B2 (en) * 2002-11-25 2008-06-10 Intel Corporation Apparatus to speculatively identify packets for transmission and method therefor
US20040100981A1 (en) * 2002-11-25 2004-05-27 Kitchin Ducan M. Apparatus to speculatively identify packets for transmission and method therefor
US8059673B2 (en) 2003-05-01 2011-11-15 Genesis Microchip Inc. Dynamic resource re-allocation in a packet based video display interface
US8204076B2 (en) * 2003-05-01 2012-06-19 Genesis Microchip Inc. Compact packet based multimedia interface
US20070286246A1 (en) * 2003-05-01 2007-12-13 Genesis Microchip Inc. Multimedia interface
US8068485B2 (en) 2003-05-01 2011-11-29 Genesis Microchip Inc. Multimedia interface
US7839860B2 (en) 2003-05-01 2010-11-23 Genesis Microchip Inc. Packet based video display interface
US20040268400A1 (en) * 2003-06-26 2004-12-30 Microsoft Corporation Quick starting video content
US20060168295A1 (en) * 2003-06-27 2006-07-27 Microsoft Corporation Midstream Determination of Varying Bandwidth Availability
US7391717B2 (en) * 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US20040264489A1 (en) * 2003-06-30 2004-12-30 Klemets Anders E. Streaming of variable bit rate multimedia content
US20080246711A1 (en) * 2003-09-18 2008-10-09 Genesis Microchip Inc. Using packet transfer for driving lcd panel driver electronics
US8385544B2 (en) 2003-09-26 2013-02-26 Genesis Microchip, Inc. Packet based high definition high-bandwidth digital content protection
US7809851B2 (en) 2004-04-30 2010-10-05 Microsoft Corporation Session description message extensions
US7783772B2 (en) 2004-04-30 2010-08-24 Microsoft Corporation Session description message extensions
US20090013369A1 (en) * 2005-04-28 2009-01-08 Samsung Electronics Co., Ltd. Device and Method for Initializing Decoder in Digital Broadcasting Receiver
US20090251616A1 (en) * 2005-04-28 2009-10-08 Samsung Electronics Co., Ltd. Apparatus and method for processing data in digital broadcasting receiver
US8170210B2 (en) 2005-12-23 2012-05-01 Koninklijke Philips Electronics N.V. Device for and a method of processing data stream
JP2009521163A (en) * 2005-12-23 2009-05-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Apparatus and method for processing a data stream
WO2007072248A2 (en) * 2005-12-23 2007-06-28 Koninklijke Philips Electronics N.V. A device for and a method of processing a data stream
US20080317246A1 (en) * 2005-12-23 2008-12-25 Koninklijke Philips Electronics N.V. Device for and a Method of Processing Data Stream
WO2007072248A3 (en) * 2005-12-23 2007-10-25 Koninkl Philips Electronics Nv A device for and a method of processing a data stream
US8374176B2 (en) * 2006-07-07 2013-02-12 Samsung Electronics Co., Ltd. Method and apparatus for providing internet protocol datacasting (IPDC) service, and method and apparatus for processing IPDC service
US20080008175A1 (en) * 2006-07-07 2008-01-10 Samsung Electronics Co., Ltd Method and apparatus for providing internet protocol datacasting(ipdc) service, and method and apparatus for processing ipdc service
US8326124B2 (en) * 2007-11-01 2012-12-04 Panasonic Corporation Recording medium, playback apparatus, recording apparatus, playback method, and recording method for reducing processing load during copyright protection at the TS packet level
US8942541B2 (en) 2007-11-01 2015-01-27 Panasonic Intellectual Property Management Co., Ltd. Recording medium and recording method reducing processing load in realization of TS packet level copyright protection, and playback device and playback method for playback of such recording medium
US20090116818A1 (en) * 2007-11-01 2009-05-07 Taiji Sasaki Recording medium, playback apparatus, recording apparatus, playback method, and recording method
US8788716B2 (en) 2009-05-13 2014-07-22 Stmicroelectronics, Inc. Wireless multimedia transport method and apparatus
US8429440B2 (en) 2009-05-13 2013-04-23 Stmicroelectronics, Inc. Flat panel display driver method and system
US8156238B2 (en) 2009-05-13 2012-04-10 Stmicroelectronics, Inc. Wireless multimedia transport method and apparatus
US20100302985A1 (en) * 2009-05-28 2010-12-02 Symbol Technologies, Inc. Methods and apparatus for transmitting data based on interframe dependencies
US8837453B2 (en) * 2009-05-28 2014-09-16 Symbol Technologies, Inc. Methods and apparatus for transmitting data based on interframe dependencies
US8671234B2 (en) 2010-05-27 2014-03-11 Stmicroelectronics, Inc. Level shifting cable adaptor and chip system for use with dual-mode multi-media device
US8630412B2 (en) * 2010-08-25 2014-01-14 Motorola Mobility Llc Transport of partially encrypted media
US20120051539A1 (en) * 2010-08-25 2012-03-01 Mukta Kar Transport of partially encrypted media
US9078015B2 (en) 2010-08-25 2015-07-07 Cable Television Laboratories, Inc. Transport of partially encrypted media
US20140270705A1 (en) * 2013-03-15 2014-09-18 Verimatrix, Inc. Reformatting media streams to include auxiliary data
US9271016B2 (en) * 2013-03-15 2016-02-23 Verimatrix, Inc. Reformatting media streams to include auxiliary data

Also Published As

Publication number Publication date
DE60332828D1 (en) 2010-07-15
AU2003208588A8 (en) 2003-09-09
WO2003071799A3 (en) 2004-04-08
EP1502437B1 (en) 2010-06-02
EP1502437A2 (en) 2005-02-02
US9118941B2 (en) 2015-08-25
ATE470311T1 (en) 2010-06-15
AU2003208588A1 (en) 2003-09-09
IL162470A0 (en) 2005-11-20
WO2003071799A2 (en) 2003-08-28

Similar Documents

Publication Publication Date Title
US9118941B2 (en) Scrambled packet stream processing
KR101010170B1 (en) Video encoding for seamless splicing between encoded video streams
JP4246836B2 (en) Method and apparatus for generating a digital data stream
US7310423B2 (en) Processing multiple encrypted transport streams
US9380337B2 (en) Command packets for personal video recorder
US8687944B2 (en) Frame indexing technique to improve personal video recording functionality and security of transmitted video
US7230652B2 (en) System and method for providing picture-in-picture timebase management
RU2547624C2 (en) Signalling method for broadcasting video content, recording method and device using signalling
US7242853B2 (en) Recording/reproducing system
US20040064574A1 (en) Stream distribution system, stream server device, cache server device, stream record/playback device, related methods and computer programs
US8923688B2 (en) Performing personal video recording (PVR) functions on digital video streams
US7764863B1 (en) System and method for providing trick modes
CN102326403B (en) Utilize exterior artwork attribute flags to carry out accelerating channel and change the time
JP4613860B2 (en) MPEG encoded stream decoding apparatus
US20140157311A1 (en) Faster Access to Television Channels
US6847780B2 (en) Trick-mode stream creation for personal video recording functions
JP4192766B2 (en) Receiving apparatus and method, recording medium, and program
US20050265369A1 (en) Network receiving apparatus and network transmitting apparatus
GB2352595A (en) data stream processing device
EP1315379A2 (en) Providing and processing data for at least two versions of parts of a television programme
US7206502B2 (en) Apparatus and method for recording and reproducing digital data

Legal Events

Date Code Title Description
AS Assignment

Owner name: NDS LIMITED, UNITED KINGDOM

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHLISSEL, MOSHE;MURRAY, KEVIN;DAVIES, COLIN;REEL/FRAME:016435/0920;SIGNING DATES FROM 20050131 TO 20050227

Owner name: NDS LIMITED, UNITED KINGDOM

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHLISSEL, MOSHE;MURRAY, KEVIN;DAVIES, COLIN;SIGNING DATES FROM 20050131 TO 20050227;REEL/FRAME:016435/0920

AS Assignment

Owner name: J.P. MORGAN EUROPE LIMITED, UNITED KINGDOM

Free format text: SECURITY AGREEMENT;ASSIGNORS:NDS LIMITED;NEWS DATACOM LIMITED;REEL/FRAME:022678/0712

Effective date: 20090428

Owner name: J.P. MORGAN EUROPE LIMITED,UNITED KINGDOM

Free format text: SECURITY AGREEMENT;ASSIGNORS:NDS LIMITED;NEWS DATACOM LIMITED;REEL/FRAME:022678/0712

Effective date: 20090428

AS Assignment

Owner name: NDS HOLDCO, INC., NEW YORK

Free format text: SECURITY AGREEMENT;ASSIGNORS:NDS LIMITED;NEWS DATACOM LIMITED;REEL/FRAME:022703/0071

Effective date: 20090428

Owner name: NDS HOLDCO, INC.,NEW YORK

Free format text: SECURITY AGREEMENT;ASSIGNORS:NDS LIMITED;NEWS DATACOM LIMITED;REEL/FRAME:022703/0071

Effective date: 20090428

AS Assignment

Owner name: NDS LIMITED, UNITED KINGDOM

Free format text: RELEASE OF INTELLECTUAL PROPERTY SECURITY INTERESTS;ASSIGNOR:NDS HOLDCO, INC.;REEL/FRAME:025940/0710

Effective date: 20110310

Owner name: NEWS DATACOM LIMITED, UNITED KINGDOM

Free format text: RELEASE OF INTELLECTUAL PROPERTY SECURITY INTERESTS;ASSIGNOR:NDS HOLDCO, INC.;REEL/FRAME:025940/0710

Effective date: 20110310

AS Assignment

Owner name: NDS LIMITED, CALIFORNIA

Free format text: RELEASE OF PATENT SECURITY INTERESTS;ASSIGNOR:J.P.MORGAN EUROPE LIMITED;REEL/FRAME:026042/0124

Effective date: 20110310

Owner name: NEWS DATACOM LIMITED, CALIFORNIA

Free format text: RELEASE OF PATENT SECURITY INTERESTS;ASSIGNOR:J.P.MORGAN EUROPE LIMITED;REEL/FRAME:026042/0124

Effective date: 20110310

AS Assignment

Owner name: CISCO TECHNOLOGY, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NDS LIMITED;REEL/FRAME:030258/0465

Effective date: 20130314

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: NDS LIMITED, UNITED KINGDOM

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BEAUMARIS NETWORKS LLC;CISCO SYSTEMS INTERNATIONAL S.A.R.L.;CISCO TECHNOLOGY, INC.;AND OTHERS;REEL/FRAME:047420/0600

Effective date: 20181028

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

AS Assignment

Owner name: SYNAMEDIA LIMITED, UNITED KINGDOM

Free format text: CHANGE OF NAME;ASSIGNOR:NDS LIMITED;REEL/FRAME:048513/0297

Effective date: 20181108

AS Assignment

Owner name: SYNAMEDIA LIMITED, UNITED KINGDOM

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE 26 APPLICATION NUMBERS ERRONEOUSLY RECORDED AGAINST ON THE ATTACHED LIST PREVIOUSLY RECORDED AT REEL: 048513 FRAME: 0297. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME;ASSIGNOR:NDS LIMITED;REEL/FRAME:056623/0708

Effective date: 20181108

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