Patent ID: 6857132

Claim:
A head end apparatus for a cable television operator, comprising: one or more inputs for receiving streams of compressed MPEG data packets and/or uncompressed Internet Protocol (P) packets encoding a plurality of video programs and/or other services provided by servers coupled to said one or more inputs; one or more transmitters, transceivers or modems, each having an output coupled to a downstream transmission medium and an input for receiving a stream of packets containing data encoding one or more programs and/or services and any other data to be used with said programs and/or services; and a pull multiplexer coupled to receive upstream program and/or service requests and to receive said one or more streams of uncompressed and/or compressed data packets from said one or more inputs, and having one or more data outputs at each of which is output an output stream of data packets containing data encoding one or more requested video programs and/or services provided by servers coupled to said inputs, each said data output being coupled to an input of one of said one or more transmitters, transceivers or modem, said pull multiplexer including a programmed computer to map one or more requested programs and/or services and/or programs or services which are to be broadcast without specific requests to program identifier codes, IP addresses or other identifying information that can be used by one or more culling switches that are part of said pull multiplexer to cull out data packets from said streams of compressed and uncompressed data packets received at said one or more inputs that contain data encoding said requested program(s) and/or service(s); and wherein said programmed computer is further programmed to optimize the assembly of said output streams of data packets to be transmuted to each customer by analyzing the number of requests for programs and/or services received from each customer and analyzing the number of tuners each said customer has and analyzing the current availability of subchannels on one or more logical channels and attempts to create said output streams of data packets so that all the data packets encoding the programs and/or services each particular customer requested are transmitted on subchannels on a number of channels that does not exceed the number of tuners said customer has including attempting to move or combine data being transmitted to other customers on other available subchannels of one or more other logical channels so as to make enough subchannels available on a number of logical channels equal to or less than the number of tuners each particular customer has such that all data of programs and/or services requested by that customer can be transmitted on a number of logical channels equal to the number of tuners said customer has.