EP0761061A4 - Fernsehprogramminformationsübertragungs- und -benutzungssystem und -methode - Google Patents

Fernsehprogramminformationsübertragungs- und -benutzungssystem und -methode

Info

Publication number
EP0761061A4
EP0761061A4 EP95921225A EP95921225A EP0761061A4 EP 0761061 A4 EP0761061 A4 EP 0761061A4 EP 95921225 A EP95921225 A EP 95921225A EP 95921225 A EP95921225 A EP 95921225A EP 0761061 A4 EP0761061 A4 EP 0761061A4
Authority
EP
European Patent Office
Prior art keywords
data processing
schedule information
data
television schedule
die
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.)
Withdrawn
Application number
EP95921225A
Other languages
English (en)
French (fr)
Other versions
EP0761061A1 (de
Inventor
John H Roop
Alan R Ebright
Jeffrey J Kochy
David P Warden
Konstantine Sokolik
Giambattista A Alegiani
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.)
Adeia Guides Inc
Original Assignee
Starsight Telecast Inc
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 US08/239,225 external-priority patent/US5790198A/en
Priority claimed from US08/243,598 external-priority patent/US5619274A/en
Application filed by Starsight Telecast Inc filed Critical Starsight Telecast Inc
Priority claimed from PCT/US1995/005169 external-priority patent/WO1995031069A1/en
Publication of EP0761061A1 publication Critical patent/EP0761061A1/de
Publication of EP0761061A4 publication Critical patent/EP0761061A4/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6543Transmission by server directed to the client for forcing some client operations, e.g. recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/107Programmed access in sequence to addressed parts of tracks of operating record carriers of operating tapes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • G11B27/3027Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording used signal is digitally coded
    • G11B27/3036Time code signal
    • G11B27/3054Vertical Interval Time code [VITC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23109Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion by placing content in organized collections, e.g. EPG data repository
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26291Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for providing content or additional data updates, e.g. updating software modules, stored at the client
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • 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/47End-user applications
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47214End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for content reservation or setting reminders; for requesting event notification, e.g. of sport results or stock market
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6334Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/025Systems for the transmission of digital non-picture data, e.g. of text during the active part of a television frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • H04N7/0882Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital for the transmission of character code signals, e.g. for teletext
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • H04N7/0884Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital for the transmission of additional display-information, e.g. menu for programme or channel selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • H04N7/0887Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital for the transmission of programme or channel identifying signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
    • H04N7/0888Subscription systems therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/10Adaptations for transmission by electrical cable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/165Centralised control of user terminal ; Registering at central

Definitions

  • the present invention relates generally to a system and method for broadcasting, receiving and using television schedule information. More particularly, it relates to such a system and method in which the television schedule information is broadcast in, e.g., the vertical blanking interval (VBI) of a television broadcast, a schedule of television programs for a user's broadcast area or cable system is compiled from the broadcast, and the schedule is displayed on the user ' s television set for interactive use.
  • VBI vertical blanking interval
  • the term "broadcast” is used in a broad sense to include such transmission modes as cable and telephonic transmission.
  • the solution proposed by Hallenbeck is to subdivide the schedule information into prioritized categories, store the highest priority category, and as much of the lower priority categories as possible in the amount of memory available.
  • a significant problem with this approach is that less information may be provided about programs in the schedule when there are more programs in the schedule and the need for more information is greatest. Further development in light of the memory and processor limitations of consumer electronics is therefore required.
  • schedule information is transmitted as part of a program broadcast signal and a prior art subscriber unit acquires the schedule information from the program broadcast signal, a potential problem arises when previously broadcast programs have been recorded on a VCR and are played back.
  • the prior art subscriber unit lacks any ability to distinguish a video signal generated from a recorded program from a video signal received in real time from a broadcast. As a result, the subscriber unit may overwrite more recent program schedule information acquired from a real time broadcast with older program schedule information coming from a video tape.
  • Proposals to transmit television schedule information with television broadcast signals often use a low bandwidth transmission mode, such as one or more lines in the vertical blanking interval (VBI) of the television broadcast signals.
  • VBI vertical blanking interval
  • the use of such low bandwidth transmission modes means that the format and management of the transmissions must be carefully planned in order to avoid practical problems. For example, when a schedule update is to be transmitted, unless special provisions are made for such updates, worst case transmission delay until the update is received and entered in a user's subscriber unit could amount to five hours, the time for transmission of a complete schedule for a week in an NTSC television broadcast signal using one line of the VBI for the schedule information. In the case of last minute schedule changes, such a delay would be unacceptable.
  • Data encryption is essential for a subscription-based broadcast television schedule system. Without data encryption, the schedule information could be acquired and used by pirate user equipment without payment of the subscription fee. However, decryption of encoded data is a processor intensive. A conventional approach of encrypting the entire schedule information transmission requires a faster and more expensive microprocessor than would otherwise be suitable for the subscriber units.
  • an object of this invention to provide an interactive television program schedule system and method that can be implemented with low cost microprocessors and memory in subscriber data processing systems. It is another object of the invention to provide an interactive television program schedule system and method in which television program schedule data is transmitted and stored in a manner that allows a low cost microprocessor suitable for use in a mass produced consumer product to carry out subset searching of the television program schedule data.
  • a television schedule information transmission and utilization system in accordance with this invention has a central data processing system.
  • a means is connected to the central data processing system for providing schedule information data for a predetermined territory to the central data processing system.
  • the central data processing system includes means for formatting the schedule information data for the predetermined territory into a predetermined schedule information transmission format.
  • a means is coupled to the central data processing system for transmitting the schedule information data for the predetermined territory in the predetermined schedule information transmission formats.
  • a plurality of regional data processing systems each located in a region of the predetermined territory, include means for receiving the schedule information data for the predetermined territory, means for selecting the schedule information data for the region in which each of the plurality of regional data processing systems is located and means for transmitting the schedule information data for the region.
  • a plurality of subscriber data processing systems are in each of the regions. Each of the plurality of subscriber data processing systems include means for receiving at least a portion of the schedule information data for the region, means for storing the schedule information data received by the subscriber data processing system, means for assembling portions of the schedule information data received by the subscriber data processing system for display to a user of the subscriber data processing system and a display connected to the means for assembling portions of the schedule information data to display the portions of the schedule information data.
  • a television schedule information transmission system in another aspect of the invention, includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and subscriber data processing systems in the predetermined territory.
  • the system is improved with a plurality of regional data processing systems, each located in a region of the predetermined territory.
  • the plurality of regional data processing systems each include means for receiving the schedule information data for the predetermined territory, means for selecting the schedule information data for the region in which each of said plurality of regional data processing systems is located and means for transmitting the schedule information data for the region to a plurality of the subscriber data processing systems in each of the regions.
  • the means for transmitting the schedule information data for the region in each of said plurality of regional data processing systems has an ability to transmit the schedule information data for the region in different places of a television broadcast signal.
  • Each of the subscriber data processing systems includes a means for locating the schedule information data in the television broadcast signal.
  • a method in a television schedule information transmission system includes transmitting schedule information data for a predetermined territory to a plurality of regional data processing systems each located in a region of the territory.
  • the schedule information data for each region is selected with its regional data processing system
  • the schedule information data for each region is transmitted with its regional data processing system to a plurality of subscriber data processing systems in each region. Portions of the schedule information data received by each subscriber data processing system are assembled for display to a user of each subscriber data processing system. The portions of the schedule information data are displayed to the user.
  • the method further desirably includes having at least some of the plurality of regional data processing systems transmit the schedule information data in different places of a television broadcast signal.
  • Each of the plurality of subscriber data processing systems locates the schedule information data in the television broadcast signal.
  • a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory.
  • the system is improved by providing means in the central data processing system for transmitting the television schedule data as commands.
  • the commands include instructions for the plurality of subscriber data processing systems in the system and television schedule information in elemental form used by the commands in the plurality of subscriber data processing systems to assemble and display a television schedule.
  • a method in a television schedule information transmission system includes transmitting commands from a central data processing system to a plurality of subscriber data processing systems.
  • the commands include instructions for the plurality of subscriber data processing systems in the system and television schedule information used by the commands in the plurality of subscriber data processing systems to assemble and display a television schedule.
  • the television schedule is assembled from the television schedule information in each of the plurality of subscriber data processing systems.
  • the television schedule is displayed to a user of each of the plurality of subscriber data processing systems.
  • a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory.
  • the system is improved with means in the central data processing system for transmitting a predetermined character string comprising a portion of the schedule information to the plurality of subscriber data processing systems.
  • a means in each of the plurality of subscriber data processing systems determines whether the predetermined character string has been acquired by that subscriber data processing system.
  • a means in each of the plurality of subscriber data processing systems stores the predetermined character string in that subscriber data processing system if it has not already been acquired.
  • a method in a television schedule information transmission system includes transmitting a predetermined character string comprising a portion of the schedule information to a plurality of subscriber data processing systems in the system. Whether the predetermined character string has been acquired by a particular subscriber data processing system is determined.
  • a television schedule information transmission system includes a direct broadcast satellite.
  • a central data processing system has means for transmitting television schedule data for the direct broadcast satellite to the direct broadcast satellite.
  • Subscriber data processing systems have means for receiving the television schedule data for the direct broadcast satellite from the direct broadcast satellite.
  • the system is improved with a plurality of regional data processing systems, each located in a region of a predetermined territory.
  • the plurality of regional data processing systems each include means for receiving the schedule information data for the predetermined territory.
  • Means selects the schedule information data for the region in which each of the plurality of regional data processing systems is located.
  • Means transmits the schedule information data for the region to a plurality of the subscriber data processing systems in each of the regions.
  • a method in a television schedule transmission system includes transmitting television schedule data for a direct broadcast satellite to the direct broadcast satellite.
  • the television schedule data for the direct broadcast satellite is received from the direct broadcast satellite at a subscriber data processing system.
  • Schedule information data for a predetermined territory is received in a regional data processing system located in a region of the predetermined territory.
  • the schedule information data for the region in which the regional data processing system is located is selected in the regional data processor.
  • the schedule information data for the region is transmitted to the subscriber data processing system.
  • a television schedule information transmission system includes a central data processing system having means for transmitting television schedule data.
  • a subscriber data processing system has means for receiving at least some of the television schedule data transmitted by the central data processing system.
  • the system is improved by providing a subscriber data processing system including a memory for efficiently storing database items comprising the television schedule information.
  • Each of the database items has a handle as an index into a handle table identifying memory locations corresponding to the handle. This allows physical movement of database items from one memory location to another for garbage collection. This allows holes in the database memory which arise as data ages and is discarded to be recovered and concatenated into large useful memory blocks. This trades "free" microcontroller cycles for memory, which is expensive.
  • a method in a television schedule information transmission system includes transmitting television schedule data. At least some of the television schedule data is received at a subscriber data processing system as database items comprising the television schedule information. Each of the database items has a handle. The handle is used as an index into a handle table identifying memory locations corresponding to the handle.
  • a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory including updates of television schedule data previously transmitted.
  • a method in a television schedule information transmission system includes establishing a relative priority for transmission of the television schedule information between updates of originally transmitted television schedule information and originally transmitted schedule information.
  • the television schedule information is transmitted in accordance with the relative priority. At least some of the transmitted television schedule information is received at a subscriber data processing system.
  • a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory.
  • Each of the plurality of subscriber data processing systems includes a receiver for television schedule data.
  • a memory for storing television schedule data is coupled to the receiver.
  • the system is improved by including means in the central data processing system for identifying the transmitted television schedule data by time relative to other transmitted television schedule data. Means in the subscriber data processing system determines if television schedule data received by the subscriber data processing system has a time identification later than a time identification of television schedule data stored in the memory.
  • a method in a television schedule transmission system includes transmitting television schedule data with an identification of the transmitted television schedule data by time relative to other transmitted television schedule data.
  • the transmitted television -schedule data is received with a subscriber data processing system.
  • the television schedule data is stored in a memory of the subscriber data processing system.
  • Television schedule data is subsequently supplied including an identification by time relative to other television schedule data.
  • the identification by time of the subsequently supplied television schedule data is compared with the identification by time of the television schedule data stored in the memory.
  • the stored television schedule data is replaced with the subsequently supplied television schedule data if the identification by time of the subsequently supplied television schedule data is later than the identification by time of the stored television schedule data.
  • the stored television schedule data is maintained in the memory if the identification by time of the stored television schedule data is later than the identification by time of the subsequently supplied television schedule data.
  • a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory.
  • Each of the plurality of subscriber data processing systems includes a receiver for television schedule data.
  • a memory for storing television schedule data is coupled to the receiver.
  • the system is improved by including means in the central data processing system for encrypting a selected portion of the television schedule data required by the subscriber data processing system to assemble a television schedule for display. Means in the subscriber data processing system decrypts the selected portion of the television schedule data.
  • a method in a television schedule transmission system includes selectively encrypting a portion of television schedule data necessary to assemble a television schedule for display.
  • the television schedule data including d e encrypted portion is transmitted.
  • the television schedule data is received in a subscriber data processing system.
  • the encrypted portion of the television schedule data is decrypted.
  • the television schedule data, including the now decrypted portion is used to assemble a television schedule for display.
  • a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory.
  • Each of the plurality of subscriber data processing systems includes a receiver for television schedule data.
  • a memory for storing television schedule data is coupled to the receiver.
  • the system is improved by including a real time clock in the central data processing system for establishing a single system time for the transmission system.
  • the means for transmitting television schedule data includes means for transmitting the single system time.
  • the receiver includes means for receiving the single system time.
  • the memory has a stored value for calculating local real time from the single system time.
  • a method in a television schedule transmission system includes establishing a single system time related to real time.
  • the single system time is transmitted to a subscriber data processing system.
  • Television schedule data expressed in the single system time is transmitted to the subscriber data processing system.
  • a value is provided to the subscriber data processing system for calculating local real time from the single system time. Local times are calculated for a television schedule from the schedule data expressed in the single system time using the value.
  • a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory.
  • Each of the plurality of subscriber data processing systems includes a receiver for television schedule data.
  • a memory for storing television schedule data is coupled to the receiver.
  • the system is improved by having the means for transmitting television schedule data configured to transmit the television schedule data as a show list for each day in the television schedule.
  • the subscriber data processing system is configured to maintain show lists for a rolling window comprising a plurality of days extending from present time into future time.
  • a method in a television schedule information transmission system includes transmitting television schedule data as a show list for each day in the television schedule. Show lists are maintained for a rolling window comprising a plurality of days extending from present time into future time.
  • a television schedule information transmission system includes a central data processing system for a predetermined territory having means for transmitting television schedule data for the predetermined territory and a plurality of subscriber data processing systems in the predetermined territory.
  • Each of said plurality of subscriber data processing systems includes a receiver for television schedule data.
  • a memory for storing television schedule data is coupled to the receiver.
  • the system is improved by having the subscriber data processing systems configured to store the television schedule data in compressed form in the memory.
  • a read only memory in the data processing system stores fixed text for the system. The fixed text is stored in said read only memory in compressed form.
  • a method in a television schedule information transmission system includes storing television schedule data in compressed form in a memory of the system. Fixed text for the system is stored in a read only memory, also in compressed form.
  • Figures 1-5 are block diagrams of television schedule information transmission and utilization systems in accordance with the invention.
  • Figures 6-25 are schematic representations of message formats used in the systems of Figures 1-5.
  • Figures 26-60 are schematic representations of data structures, flow charts and display formats used in the systems of Figures 1-5.
  • the systems 50A-50D transmit TV schedule data and associated network control messages as packets via the Video Blanking Interval (VBI) lines *in the TV signal from various television program providers 51, such as PBS, MTV or Showtime.
  • VBI Video Blanking Interval
  • This data is acquired by StarSight Subscriber Units 52 and used to construct an internal database.
  • This internal database can be accessed by the Subscriber Unit 52 to display a TV schedule for the channels that are received by the user's TV. Since access to the network systems 50A-50D is via a subscription service, certain messages are encrypted by a security computer 53 to prevent access by nonsubscribers.
  • Packets contain error detection information and system overhead bytes for finding the head of a packet.
  • the information embedded in a Packet is termed a Message.
  • Messages consist of one or more Commands. There are various types of Commands, each type distinguished by a unique code number. Commands contain the different types of information necessary to construct and maintain a TV schedule database, time markers, and user authorization information.
  • the systems 50A-50D are data networks that deliver specially formatted data to subscribers 52 located throughout the USA. This data is used to build an "on screen program guide" that enables the system subscribers to interactively view television program listings on their TV screen.
  • the information for this network is derived from a database that is built by a computer program running on a UNIX computer 54. To build this database a data provider (DP) 56 is required to supply the computer 54 with program listing files called Show list files.
  • Television program schedule data is generated by a vendor company at 56 and providedto the StarSight computer center 54 in a simple interchange format. Information is encoded that specifies what television programs are on at what time and on what channel. This data is received and processed for all channels for the entire country for 10 days. Any changes to the TV schedule are transmitted as soon as they are available on an as needed basis. The following description describes the specific information and fields that are contained in the files.
  • the Show list files are transferred electronically to the file system in computer 54 through a router connected to the DP's Ethernet and a digital leased line 58, using the standard TCP/IP program, FTP, or other file transfer protocol standard mutually agreed upon.
  • the files may require compression, due to the bulk of data being transferred, using a mutually agreed upon data compression algorithm compatible with the UNIX file system in computer 54.
  • the operating speed of the leased line 58 will be sufficient to transfer all data files in a reasonable length of time.
  • the files are transferred to the computer 54 on a daily basis 7 days a week, with the file transfer completed by 0800 hours PST.
  • the daily file transfer will be into the home directory corresponding to the login name used to perform the file transfer.
  • the "Main" file download to the computer 54 will always be for the date 12 days into the future. Thus if today is the 10th, today's data download would be for start times beginning at 0000 hours GMT on the 22nd.
  • An Update file contains records of all changes that have been made since the last Update file was produced, which modify any of the data for any date which is still "active".
  • An “active" date is defined as the dates beginning with today's date, and spanning the 11 days following (that is, all dates from today to the date covered by today's "Main” file, but not including that date.
  • Last minute schedule changes require "Flash Updates", which provide a "Flash Update” file within 5 minutes after entry of any change. Such files “trickle" across the leased line 58 to the computer 54 throughout the day.
  • the TV schedule information is processed by the computer 54 and inserted into a master database. During this process, redundant information is removed. For example, if the I Love Lucy show is playing more than one time during the 10 days of schedule information, the character string for the title of that show is only stored once in the master database. For each channel and day, information is stored that specifies what shows are on at what time for the entire day. Each show may, but not necessarily, contain a show title and a show description.
  • the purpose of the master database is to store all of the TV schedule data in a relational database with standardized methods to access the data.
  • the data is organized in a way that makes retrieval of the data efficient.
  • Television viewers receive a set of television video signals at the viewing location.
  • Cable television providers assign broadcast and satellite program channels to specific channels. Every cable company has a unique assignment of channels. Every geographic location has a set of broadcast channels that may be received in that locality.
  • a subscriber unit must have a listing of the program channels and the channel assignments in order to provide a subscriber with the TV schedule data relevant to that subscriber.
  • Each unique set of channel assignments are assigned to a Reception Group. Associated with each Reception Group is a region name, reception group type (cable, broadcast, satellite), set of zip codes where this set of program channels may be received, a list of program channels received, and the channel assignment for those program channels.
  • region name Associated with each Reception Group is a region name, reception group type (cable, broadcast, satellite), set of zip codes where this set of program channels may be received, a list of program channels received, and the channel assignment for those program channels.
  • Line Up information comes from many sources, such as commercial companies that collect the information, subscribers, cable companies and analysis of broadcast channel transmission coverage.
  • Line Up information obtained from a single source is not considered correct.
  • Various processes are used to align data from the multiple sources to obtain one database with superior quality.
  • a master database is created to which all other Line Up data is compared. Changes are made to the master database when a correction is verified.
  • the primary key to associating one Line Up to another is by verifying that the zip code of the Line Ups are the same. Once the zip code information is verified, the channel assignments are compared and verified by phone calls to the cable company or subscribers in the area.
  • a computer program processes the data to emit a data stream suitable for transmission over the PBS data network.
  • the data is compressed and organized optimally for the Station Nodes and subscribers 52. The specific format of the output data stream is described below.
  • the output data stream is grouped and ordered by the data type. Due to the methods employed in the subscriber unit, it is optimal to sequence the data in a particular order. This allows the subscriber unit to collect an entire TV schedule in one pass of the data.
  • the data blocks and their order is as follows:
  • Security keys are required to restrict access to the data to only those subscribers authorized to receive the data. Portions of the data stream are encrypted using the industry standard Data Encryption Standard security key algorithm. These keys may be changed at any time. To keep all of the desired subscriber units authorized and to change the keys, a series of messages are transmitted that contain the current and future security keys. A subscriber unit's initial set of decryption keys are sent in the network message that authorizes the unit to begin collecting data. The keys in this authorization message are encrypted with a key that is unique to the individual subscriber unit.
  • the master database contains a set of attributes for each category that indicates if that TV program falls into a particular genre. Each unique combination of genre attributes are assigned a unique theme identification. Each show is assigned a theme identification based on a set of genre attributes. A table is transmitted that assigns a text description to each theme identification in the theme data block.
  • Daylight Savings Time Change Data is transmitted that specifies the time when daylight savings begins and ends.
  • a message is repeatedly transmitted on the data network that specifies the exact time that daylight savings time begins and the time that it ends. The subscriber units 52 pick this message and adjust the local time to compensate for the effect of daylight savings.
  • Reception Group data contains the necessary channel line up data for all of the unique Reception Groups. This data includes Regiod ID (unique number associated with the reception group), region type (broadcast, cable, satellite), Channel ID (unique number associated with the particular channel), and tune channel • number (channel to which the TV must be tuned to receive the channel). Any particular subscriber unit 52 is assigned to a Reception Group during the authorization process. The subscriber unit will only process the data for the
  • Each channel reference in any reception group must have an associated channel data command.
  • the channel data command contains information about that channel.
  • the native channel number (tune channel for that channel if it were a broadcast channel), station call letters, network affiliation (ABC, NBC, CBS), and an abbreviation for the channel name.
  • the later abbreviation is used to display a 1 to 4 character icon for that channel on the subscriber unit. Data for any particular channel is only transmitted once per data cycle.
  • a show list contains a list of the TV programs and their duration for a particular channel and day.
  • the command contains a Channel ID, start time for the first program, and a list of subsequent programs and their duration.
  • Each show contains a Show ID and an optional Description ID.
  • the Show ID and Description ID are each a unique number associated with the text of that show title or description, respectively.
  • Each show also contains a flag that indicates if it is a pay per view program.
  • Show Title Data Every unique show title reference in a show list has an associated Show Title command.
  • the Show Title command contains the Show ID, Theme ID, and show title text.
  • Each unique Show Title is included only once in the data stream, and may be used many times by the subscriber unit 52.
  • the text in the show title is compressed using Huffman compression techniques.
  • Show Description command contains the Show Description ID, MPAA rating, critics rating, and show description text.
  • Show Description ID contains the Show Description ID, MPAA rating, critics rating, and show description text.
  • Each unique Show Description is included only once in the data stream, and may be used many times by the subscriber unit 52.
  • the text in the show description is compressed using Huffman compression techniques.
  • Each PBS station node receives blocks of data that will be retransmitted by that station node. Only data that is required by the subscriber units in the area serviced by the station node is sent to that station node. For example, the station node in San Francisco only receives data for the cable systems and TV stations received by subscribers in the San Francisco area. None of the Los Angeles data is received by the San Francisco station node.
  • the goal of the security software for the StarSight system is provide conditional access to the StarSight data stream. Portions of the data are encrypted. Access to the schedule data is conditional in the sense that a subscriber unit 52 must know the decryption key. Only units that are authorized may receive the decryption key.
  • the conditional access system involves three levels of encryption. At the top, each unit has an RSA public/private key pair. Next, batches of up to 256 units share a DES key, which is called the batch key. At the bottom, program guides are encrypted with a DES key shared by all authorized units, which is called the program key. The program keys, changed periodically, are distributed under the batch keys, and the batch keys are distributed under the RSA keys, giving a three- level hierarchy.
  • the batch key is distributed in an authorization message, which is encrypted with the unit's RSA public key.
  • the authorization message also gives the unit a batch number, and a unit number within the batch, a "service type" field, as well as the current and next program keys.
  • the authorization message would typically be the first interaction between StarSight and a unit in the field, although it can be sent at any time to reassign batches.
  • Program keys are distributed in a key distribution message, which is encrypted with a batch key.
  • the key distribution message also indicates, according to a unit number in the batch, whether a unit is still authorized.
  • Two of the security system functions are to process the authorization and key distribution messages.
  • a third function is to decrypt encrypted text with one of the program keys.
  • the text is encrypted in cipher block chaining (CBC) mode.
  • CBC cipher block chaining
  • the subscriber unit 52 is a microprocessor based system designed to receive, process and display the TV program schedule data.
  • the subscriber unit 52 hardware includes a microprocessor, read only memory, random access memory, security co ⁇ processor, IR blaster co-processor, on screen display co-processor, and power management circuitry. These components are combined with software that implements the Electronic Program Guide system.
  • the microprocessor has many tasks to perform as will be described. Each task must be serviced in real time, but may not necessarily be completed each time slice. A "round robin" executive is used to perform this function.
  • a main loop sequentially calls each of the individual tasks. When a task is called, it will perform its defined function, based on its current state. The tasks are required to complete the entire task or a subtask in a pre-defined time period. This way, all of the tasks have an opportunity to execute their defined task within a time period. After the last task has executed its function, the first task is executed again.
  • Memory is divided into equal sized allocation blocks.
  • the set of memory blocks is referred to as the pool.
  • a handle table is created that makes references to the memory blocks in the pool.
  • An application software subroutine may allocate memory by creating and storing an entry in the handle table, which references one or more allocation units in the memory pool.
  • Memory may be de ⁇ allocated by releasing the memory references in the handle table.
  • the memory pool After many memory blocks are de-allocated, the memory pool will be fragmented. There will be many blocks of memory of varying size that are not contiguous.
  • One of the background tasks is to de-fragment the memory pool. A procedure is run that moves the allocated memory blocks to the lowest possible memory location. When a block of memory is moved, the references to that memory are changed in the handle table. This way the application program still has a reference to the memory block. Each allocation unit is moved so that any de ⁇ allocated blocks that are between allocated blocks are collapsed. The net result is that all of the de-allocated memory is at the highest possible memory location and all of the blocks are contiguous.
  • VBI data is decoded from the video stream and processed by an 8032 microprocessor.
  • a buffer is used to store the data and assemble packets.
  • a comparator is used to detect a special sync character sequence. As soon as these characters are detected, the buffer is reset and the packet header is assembled. If the correct cyclic redundancy check (CRC) of the packet header is detected, the remaining portion of the packet is assembled. After the complete packet is assembled, an additional CRC is computed to verify that the complete packet was received without an error. Once this is verified, the packet is broken up and individual network messages are passed to the command processor.
  • CRC cyclic redundancy check
  • the command processor determines if the encryption bit is set in the command header, and if so, the data is passed to the security module.
  • the security module then decrypts the data and returns it to the command processor.
  • the command processor functions as a dispatcher to send the command to the correct processing module, based on the command function.
  • the database processor is responsible for storing and retrieving all TV schedule and channel data. It receives data from the command processor and stores that data into the database. A set of function calls is used to retrieve data for the application program. The organization of the database is described below.
  • the security processor has two major functions: key management and data decryption.
  • key management When messages are received from the command processor that contain the correct serial number or batch number, the security processor receives the message and decrypts the message.
  • the data In the case of an authorization message, the data is decrypted using the RSA private key.
  • the batch number, batch key and other control information is decoded and stored for fumre use.
  • key management message the data is decrypted using the batch key, and the information is stored for future use. Program keys are distributed encrypted under the batch key.
  • the user interface takes remote control commands as its primary input.
  • a user requests various functions by pressing a button on a remote control.
  • the user interface receives these commands and responds with the requested display screen.
  • display commands are generated asynchronously when a recording begins or when the unit attempts to collect data.
  • the application has over 20 different and distinct display screens. Each display screen has associated with it a particular state. The data and format of the screen is dependent on the previous screen, the time of day, the contents of the database, and what remote control button was pressed. A state table is used to define the screen flow.
  • the entrance function is called when a state is first entered, to collect all necessary data and format the screen.
  • the exit function is called to release memory and data for the screen.
  • the update function is called once per minute to update the screen time and to re-draw the screen if any shows have ended or any recordings have started or completed.
  • the table contains a reference to another software function for every key on the remote control. These functions will be executed when the associated remote control button is pressed.
  • the user interface also manages an array of pop-up windows that may appear and disappear on the screen either synchronously or in response to key presses.
  • popup categories that define the screen priority for each, i.e., which one covers which when several popups are on the screen at once. These popups may be cursors, show descriptions, error messages, help messages, or requests for more information. Each popup category has its own entrance, exit, update, and key-handling routines similar to those of the main screen states.
  • the user interface is responsible for locking and unlocking the database while the user is interacting with the program guides, maintaining the selection and ordering of the program channels, controlling the tuner from the guide screens, performing the theme searches in the database, and controlling a demon that automatically collects schedule data at a pre-determined time from the data provider channel.
  • the purpose of the record manager is to maintain a list of recording requests and to then start a recording at the correct time on the correct channel.
  • the user interface defines three types of recordings, once, weekly and daily. The user may record the shows he/she is currently watching or select a particular title from one of the guide screens. The user will move the cursor to a particular title on one of the guides (grid, channel or theme), press the "record” button, and select if the program is to be recorded once, weekly or daily.
  • the recording queue contains entries for each of these types of recordings. In the case of the daily recordings, up to five individual entries are made in the working record queue. A single entry is made for the weekly and once recordings.
  • the working record queue represents all of the recordings that are to be done for the coming week sorted by show start times.
  • a record demon is called from the real time executive that determines if it is time to start a recording.
  • the leading entry in the working record queue is examined to detemine if it is time to start that recording. If it is time, a software function is executed that will start the recording. Once a recording is started, the record demon will determine if it is time to terminate a recording. When the stop time is reached, a software function is executed that will terminate the recording.
  • Starting and stopping a VCR recording is done in several ways, based on the configuration of the user's equipment. In the case where a cable converter is not being used, the following actions are taken to start a recording:
  • the VCR is put in stop mode and then the power is toggled. In all cases, these commands are performed by sending infrared commands to the device.
  • Another function of the record demon is to examine the queue of weekly and daily record requests and then to spawn a new entry in the working queue. For example, if it is Monday morning and a daily record request is entered for a program in the afternoon, 5 entries will be made in the working queue, i.e. Monday, Tuesday, Wednesday, Thursday and Friday. After the first recording is finished on Monday afternoon, the entry in the working queue for Monday will be deleted. The record demon will examine the record queue and discover that it is time to add a new entry in the working queue for next Monday. This entry will be added in the time sorted order position in the working queue.
  • the demon maintains the proper start time when a daylight savings boundary is crossed. That is, the demon must add one hour to a show's start time in the fall and subtract one hour in the spring, provided daylight savings time is applicable to the user's region.
  • the record manager handles deletions, either singly or muliply depending on the original type of recording.
  • An on screen display is used to display the text and graphic information that makes up the various display screens.
  • a common interface is used to control various devices. Three different devices can be used: the ITT TPU2740, the ITT CCD 3005, and the Zilog Z89300.
  • the user interface has a set of functions . defined to draw text, draw an embossed rectangle, draw a channel icon, and to set the display attributes.
  • a set of software functions are used that translate these commands into the correct functions for the particular device. .
  • subscriber units 52 Details of the subscriber units 52 are provided in Figure 5. The following description is in terms of a subscriber unit 52 for a TV Receive Only (TVRO) system (see also Figure 4). With appropriate modifications, the subscriber unit 52 can also be incorporated in a cable decoder box for use with cable systems. The subscriber unit can also be built into televisions or VCRs or provided as a separate stand alone unit.
  • TVRO TV Receive Only
  • TVRO Subscriber Unit 52 This description is for the electronic hardware of the StarSight Telecast "TVRO Subscriber Unit” 52.
  • TVRO customers are people who have home satellite dishes for television viewing.
  • TVRO stands for "TV Receive Only”.
  • the TVRO Subscriber Unit 52 will hook up to the customers TVRO Satellite system and will enable the customer to subscribe to StarSight's Electronic Program Guide Service.
  • the TVRO Subscriber Unit 52 is a fully self contained, separate unit, that is installed in series with the existing customer TVRO equipment.
  • the Subscriber Unit receives Baseband Video from the customer TVRO system.
  • the Program guide display screens are merged with the customer video in the Subscriber Unit.
  • the customer has the options of Baseband Video out or Channel 3/4 RF out.
  • the Subscriber Unit formats and displays TV program schedule information in real time, overlaid on top of the TV viewing screen.
  • the TV schedule information is transmitted in one of the Vertical Blanking Interval (VBI) lines of a conventional TV broadcast.
  • VBI Vertical Blanking Interval
  • the Subscriber Unit stores this information in local on board memory.
  • the information is displayed in the form of a "Grid Guide" on the TV screen when the customer presses a button on the remote control.
  • the Subscriber Unit 52 consists of the following sub-sections:
  • Custom gate array 103 Custom gate array 103.
  • Segmented Base Registers 104 for fast memory data manipulation.
  • Security logic 106 for decoding incoming encrypted data.
  • Video Input 123
  • Custom Color Converter 126 for overlay display
  • the heart of the TVRO Subscriber Unit 52 is an "8032, 8 bit Microprocessor" 100. This microprocessor controls all sections of the Subscriber Unit. A brief description of this processor will be given for reference. For more detail, refer to the 8032 data books from Intel or Signetics.
  • the 8032 has an 8 bit Data Bus and a 16 bit Address Bus. The upper 8 bits of the address bus are always present. The lower 8 bits of the Address Bus are time multiplexed with the Data Bus and an External Address Latch is required to de-multiplex this bus. This latch is located inside of the DBE 1200 Gate Array 103.
  • the 8032 has two address spaces, the "CODE” space and the "DATA” space. The DATA space is further divided into the RAM Memory area and the I/O area. "CODE” refers to any access to Program ROM.
  • the Program CODE space is 64K bytes long and the 8032 can only "READ” from this space. All Code access uses the "PSEN" (Program Store ENable) line.
  • +ALE is the control signal used to de-multiplex the Address Bus. The falling edge of +ALE will latch the lower 8 bits of the address. -PSEN will then assert to start the ROM read.
  • the current design has the EPROM -CS line always tied to ground. This makes the EPROM "OE ACCESS” time the determining spec for ROM reads. By today's standards, this microprocessor bus timing is very slow and this allows for the use of inexpensive ROMs.
  • DATA refers to any access to external RAM 102. Special additional hardware has been added to the TVRO Subscriber Unit so that the DATA area can extend past the 64K addressing limit.
  • I/O space occupies the same first 64K segment as the DATA RAM. There is a signal called -r-DRAM_ENABLE that is used to determine which area will be accessed.
  • the I/O space is where the system control registers are located. There are 18 write registers and 13 read registers. These registers are used to control the various subsystems in the Subscriber Unit. Features like clock frequency selection, serial bus control, I.R. status and control, etc., are all controlled through this register set. There are other control registers located in the peripheral chips. The 8032 uses two serial Busses to communicate and control these peripheral chips.
  • the "IM BUS" 108 is a 3 wire serial bus used to talk to the transaction processing unit (TPU 2740) 124.
  • the TPU 2740 collects the incoming VBI data and also formats and displays the various StarSight overlay screens.
  • the Software Serial Bus 110 is used to talk to the Security Microprocessor 106 and also to the IR Blaster Chip 116. This is a two wire bus with a unique serial timing protocol.
  • the first 64K of 8032 Address Space has three separate overlapping functions.
  • Table I summarizes the input and output signals of the 8032 microprocessor:
  • PORT 0 8 bit Multiplexed 8032 Data and Address Bus.
  • I/O PORT 1 Various system control bits. I/O
  • Subscriber Unit however, is required to store more than 64K bytes of TV program data.
  • the "READ and WRITE BASE REGISTERS" allow the 8032 to access additional memory above the 64K limit.
  • the 8032 uses an internal 16 bit register called the "Data Pointer Register” (DPTR) to hold the address of the external DATA location.
  • DPTR Data Pointer Register
  • the 8032 can access any 64K byte chunk of the external RAM starting at the address written in the Base Registers. (Since the base register is shifted 4 bits left, the 8032 can access any 64K byte segment starting on even 16 byte boundaries.)
  • the upper segments are used to store TV program information.
  • Table II below tries to show how the DPTR is added to the Base Register to form the 20 bit RAM address.
  • the READ BASE REGISTER is set to 0001 Hex.
  • the WRITE BASE REGISTER is set to 1080 Hex.
  • the Data Pointer (DPTR) is set to 382A Hex.
  • the DATA RAM 102 stores the TV program guide information.
  • This RAM is currently available in 3 sizes, 128K bytes, 256K bytes or 512K bytes.
  • the TVRO product uses 512K bytes.
  • the Data RAM uses "PSRAM” chips. "PS” stands for Pseudo Static.
  • PSRAM is a standard DRAM that has been packaged with STATIC RAM pinouts. Extra logic is added so that DRAM refreshes are simplified.
  • These PSRAMs also have a power down data retention feature that works down to 3 Volts.
  • PSRAM OPERATION Sequence Up Operation
  • the PSRAMs After initial power up, the PSRAMs must be "SEQUENCED UP" before any reads or writes can be done.
  • the Sequence Up procedure is slightly different for 128K and 512K parts. This procedure was added to insure that logic and timing specifications of the PSRAM are maintained when the PSRAMs are in the power down data retention mode. There is a provision to use a large Capacitor or a Battery to keep the PSRAMs powered up when the system power is lost.
  • +Chip_Enable2 Pin 30
  • -REFRESH Pin 1
  • +Chip_Enable2 Pin 30
  • -REFRESH Pin 1
  • + CHIP_ENABLE Pin 30
  • -Chip_Enable Pin 22
  • -OE/-REFRESH Pin 24
  • -Chip_Enable Pin 22
  • -OE/-REFRESH Pin 24
  • Normal PSRAM operation is very straightforward. Refreshes are automatic and transparent to the microprocessor.
  • the PSRAM must be Refreshed at least once every 15uS.
  • the Refresh address is generated inside the PSRAM and is transparent to the user.
  • the Refresh pin on the PSRAM must be held low for a minimum time.
  • the Refresh Request is generated by the internal clock divided by 256. With a 24MHz clock, this happens about every 10.7uS.
  • the Refresh Pulse to the PSRAM chip must not occur at the same time as a PSRAM read or write access. Since the Refresh Request and any PSRAM access are asynchronous, the -PSEN line is used to start a Refresh. When the Refresh Request is detected, the Refresh circuit waits until the next -PSEN falling edge. -PSEN falls at the beginning of a CODE access to ROM. CODE accesses to ROM happen all the time as the 8032 fetches OP-CODES. During this time, it is impossible for the 8032 to access PSRAM. The Refresh is very fast and it will be finished before the -PSEN CODE fetch is complete.
  • Sequence Down is the opposite of Sequence Up.
  • the system has an "Early Warning Power Fail Detector" that will interrupt the 8032 before the supply voltage starts to drop.
  • the 8032 responds to this interrupt by saving any critical PSRAM data and then asserting the +SEQUENCE_DOWN bit.
  • Sequence Down will force the PSRAM critical inputs to their correct state and will do so insuring that the timing specification is maintained.
  • the Sequence Down logic will not start until the end of the next Refresh to insure proper timing.
  • SEQUENCE DOWN rules are shown below. For the 128K parts:
  • +Chip_Enable2 (Pin 30) must go to logic '0' at least 60nS before -REFRESH (Pin 1) is forced to logic '0'. After the power dies, external components should hold these lines at logic '0' as the gate array outputs will be undefined.
  • -Chip_Enable (Pin 22) must be forced to logic '1' at least 50nS before -OE/-REFRESH (Pin 24) is forced to logic '0'.
  • PSRAM OPERATION Power Down Data Retention
  • PSRAM POWER DOWN LATCH There is a very low current J-K Flip Flop that is powered by the same backup capacitor that powers the PSRAMs. This flip flop lets the software know if the voltage dropped below the minimum voltage specification during a power off period.
  • this latch should power up to logic '0'.
  • the PSRAM voltage must be greater than 3.1 Volts. (This releases the J-K Flip Flop Reset Pin). 2.
  • the PCB +5 Volt supply must be greater than about 4.5 Volts. (This releases system POR).
  • the -ENBLAT line must be set to logic '0'.
  • the +BAND0 line must be set to logic '1'.
  • the +LAT_CLK line must be toggled to logic '0' and then to logic '1 '.
  • the -ENBLAT and +LAT_CLK lines are driven by 8032 microprocessor
  • PORT pins These pins will be initialized to logic '1' by 8032 hardware at POR time.
  • the +BAND0 line comes from the DBE 1200 gate array and is reset to logic '0' at POR time.
  • the Gate Array 103 is packaged in an 84 pin PLCC package.
  • the Gate Array terminology is slightly different from the PCB terminology.
  • the PCB uses
  • the address decoders are shown on pages 1 and 9 of Appendix A.
  • 74F138 type 1 of 8 decoders are used with the 8032 -RD or -WR strobe used for an enable.
  • the outputs of the 74F138 will be valid only when the proper address is written or read.
  • the following tables show the Write and Read addresses that are decoded.
  • the page number refers to the page of the Gate Array schematic of Appendix A that the register can be found on.
  • the "Gate Array Name" is the name of the decoded signal on the schematic.
  • the PSRAM Control logic is shown on Page 2 of Appendix A. This logic consists of simple gates that route the control signals to their proper pins depending on the mode the chip is in.
  • the chip has two memory size modes, 128K and 512K. There is also a Sequence Up mode and Sequence Down mode.
  • PSRAM CONTROL SIGNALS XRFSH 8 (-ReFreSH or address_bit_l 8) This is a dual purpose signal that should be tied to pin 1 of the PSRAM chips. When Sequenced Up, this signal is mode dependent.
  • this is the PSRAM read output enable AND the Refresh input. If this signal asserts by itself, then a refresh happens. If it asserts along with the -Chip Select pin, then a PSRAM read takes place. When Sequenced Down, this signal is forced to logic "0".
  • XRAM_WE0 (-RAM Write Enable 0)
  • This signal should tie to pin 29 of the low order PSRAM chip.
  • a PSRAM write will be done when this signal asserts along with a valid chip select.
  • Sequenced Up this signal is the Write Enable to the PSRAMs in both modes.
  • Sequenced Down this signal is a don't care.
  • XRAM_OEl (-RAM Output Enable 1)
  • Sequenced Up this signal is the Output Enable control for reads from the upper PSRAM chip in 128K mode. This signal is not used in 512K mode as there is no upper chip installed.
  • Sequenced Down this signal is a don't care.
  • This signal should tie to pin 29 of the high order PSRAM chip.
  • a PSRAM write will be done when this signal asserts along with a valid chip select.
  • Sequenced Up this signal is the Write Enable to the upper PSRAM in 128K mode. (Note: The current design does not use an "upper” chip in 512K mode.)
  • Sequenced Down this signal is a don't care.
  • XCE1 -Chip Enable 1 This is a dual purpose signal that should be tied to pin 22 of the PSRAM chips.
  • Sequenced Up this signal enables the PSRAM chips to read and write in both modes.
  • Sequenced Down mis signal is forced to logic " 1 ".
  • the 512K PSRAM chip requires this line to be forced to logic " 1 " during power down data retention mode. This line is a don't care on 128K PSRAMs.
  • CE2_A17 (+ Chip Enable 2 or Address_bit_17)
  • this signal is tied to -f-Chip Enable and it is always logic "1 ".
  • XWRSTROB is the timing signal used to write to PSRAMS. Data is written to PSRAM at the rising edge of XWRSTROB. This rising edge hits before the rising edge of the 8032 -WR to insure that any PSRAM data hold times are met.
  • Pages 3 and 4 of the Gate Array schematics in Appendix A show the Base Registers and the PSRAM address Multiplexer. See above for a description of the Base Register functions. This section will deal with the circuitry.
  • the Base Registers are shown at the left of Page 2. The outputs of these registers pass through "AND" gates before going into the Adders. The AND gates allow the base register outputs to be quickly forced to all zeros at the Adder inputs.
  • the outputs of the Adders feed over to the MUX.
  • This MUX places the results of the READ ADDERS on the PSRAM address pins most of the time by default. There is no way to know that the 8032 is going to do a write until the -WR strobe asserts. When -WR asserts, a flip flop switches the MUX over to the WRITE
  • the read adder was chosen for the default value because RAM reads take a little longer than writes.
  • the dual adders are there so that the write address is stable as soon as the -WR strobe asserts.
  • the I.R. Receive circuit has various modes of operation depending on whether the button on the remote is released or if it is continuously held down. This circuit is on page 5 of Appendix A. When a valid code is clocked into the I.R. RECEIVE DATA REGISTER
  • TIL RD TIL RD bits will set.
  • the +IRR_VAL bit will remain set until the remote button is released. There are 2 ways to clear the +VALTILRD bit.
  • +IRR_NC (I.R. RECEIVER NO CHANGE) will set the first time that the
  • I.R. RECEIVE DATA REGISTER is read. It will remain set until the remote button is released. -l-IRR_RDY goes high as soon as the remote button is pressed and stays set until released.
  • the Security Clock Generator is at the lower middle of page 9 in Appendix
  • the original spec for this clock was 5 MHz. To allow for changing oscillator frequencies, this clock was made programmable.
  • Both the high time and the low time of this clock period can be programmed independently by writing to I/O address 3C00hex.
  • the high time is set with the upper nibble while the lower nibble sets the low time. This time is in multiples of the input oscillator frequency.
  • the circuit works by loading the program nibbles into 74F169 type counters.
  • the I.M. Bus is used to talk to the TPU 2740 chip.
  • the I.M. bus circuit is shown in Figures. Refer to the I.M. bus specification for a detailed explanation of this bus.
  • the I.M. bus is a 3 wire serial communication bus.
  • the 3 lines are called
  • the DBE 1200 gate array is always the I.M. Bus Master and therefore always drives the I.M._CLOCK line.
  • I.M._DATA line is a bi-directional data line (Open Drain with an external pull up resistor).
  • the I.M. DENTIFY line is an output used to identify the "I.M. Address” and also to terminate the transfer.
  • An "IM BUS WRITE" is a transfer out of the
  • An "IM BUS READ" is into the 8032 from the IM Slave device.
  • a bit called I1BYTE (3000W.0) determines how many data bytes to transfer.
  • WXR_BIT (000W.1) determines if the transfer will be a read or a write.
  • Page 11 of Appendix A shows the I.M. counter and control logic and Page
  • 8032 writes the 8 bit address of the slave device that communication should be established with here. This address is latched in the 74HCT273 in Figure and is transferred to the shift register when the transfer begins. It is not necessary to reload this register if the same address is accessed on two successive I.M. transfers. The byte written to this register will always be the first byte written out of the Gate
  • I.M. WRITE DATA 1 REGISTER (2400W page 12 XL_IM_D1) .
  • the byte contained in this register will be the 2nd byte shifted out onto the I.M. bus during I.M. Writes. This register must be reloaded after each transfer.
  • the byte contained in this register will be the 3rd byte shifted out during I.M. Writes, but only if the transfer length is set to 2 bytes. This register must be reloaded after each transfer.
  • I.M. READ DATA BYTE 1 1000R page 12 XRD_BYT1 . After a read transfer, this register will contain the incoming data byte. If it is a 1 byte read transfer, then the data will be in this register. If it is a 2 byte read transfer, then the second byte received will be in this register.
  • I.M. READ DATA BYTE 2 (1400R page 12 XRD_BYT2) . After a 2 byte read transfer, this register will contain the first incoming data byte. During a 1 byte read transfer, the outgoing address will wrap back and end up in this register. This wrap feature can be used for error checking or diagnostics!
  • Bit 1 of this register determines whether the transfer is read or write. Bit 0 of this register determines if 1 or 2 data bytes will be transferred.
  • I.M. BUS STATUS REGISTER. (1800R page 6 XSW_LO) Bit 7 of this register contains the +IM_BUSY line. This line will be high during the I.M. transfer.
  • I.M. CIRCUIT OPERATION The logic on page 11 controls the I.M. Bus transfers.
  • the I.M. clock (IM_P_CK) and the 8032 input oscillator elk (OSC_2) are both derived from the 24MHz oscillator.
  • the 8032 does not specify any timing with respect to the input oscillator and the timing that is specified is very loose with respect to a 12MHz input clock. For this reason, it must be assumed that the Start Transfer Pulse from the 8032 and the IM_P_CK are asynchronous.
  • the first 3 flip flops at the lower left of Figure are used to re-synchronize these signals and to start the I.M. transfer.
  • the 74F269 counter on page 11 will start to count up from zero.
  • the EN_IMCK line will allow the IM_P_CK to gate out to the I.M. bus clock pin 14.
  • the first 8 clocks will clock out the address and the I.M._IDENTIFY line will assert during this time.
  • the counter reaches a count of 8, the I.M.JDENTIFY line will negate.
  • the I.M._DATA line will continue to be an output for the rest of the transfer. If an I.M. Read is in progress, the I.M._DATA line will switch from an output to an input after the 8th count. The transfer will abort after count 16 or count 24 depending on the state of the I1BYTE (3C00W.0) bit.
  • the I.M.JDENTIFY line will briefly pulse low one more time to indicate that the transfer is complete. During this entire time, the IM_BUSY bit will be asserted and available to the 8032 as status.
  • the IM_P_CLK is created by dividing the 24MHz oscillator by 32. This yields a clock edge at about every 1.3 uS. A full 24 clock transfer takes about 32 uS. WATCHDOG TIMER
  • the Watchdog Timer is on page 13 of the Gate Array Schematic, Appendix A. This timer can be turned on and off with the bit EN_WDOG (3000W.7). The Watchdog is reset in normal operation by writing to address 6400W. The data written to this address is "don't care".
  • the Watchdog timer is 16 bits long and it is clocked by the OSC 256 clock. This timer was made out of synchronous counter blocks (I_SCBR) provided by the Gate Array vendor.
  • the Watchdog starts at Zero and counts up. If it is allowed to overflow, then the reset line to the 8032 will assert. The Power on Reset line to the Gate Array will also assert.
  • the 8032 reset line will assert about 256 clocks before the Gate Array POR internal reset asserts.
  • the 8032 requires that a fixed number of clocks be provided while the reset line is asserted in order to properly reset.
  • the internal Gate Array POR line completely resets the Watchdog circuit, so it is necessary to delay these events for proper 8032 reset timing.
  • the Gate Array internal POR line completely resets the chip to a known state except for the OSC divider clocks on page 9 and the IM Read data registers on page 12.
  • the CRC-32 circuit is on pages 15-18 of the Gate Array Schematic. This circuit can be used to Check or Generate the CRC-32 Polynomial. This polynomial is four bytes long and is used to verify data integrity.
  • the circuit has two modes of operation, CRC-32 on and CRC-32 off.
  • the bit X_EN_XOR (6000W.4) determines the mode. When this bit is logic "0”, the CRC-32 logic is enabled and any data written to the CRC registers will be multiplied by the CRC-32 polynomial. When this bit is logic "1", the CRC-32 polynomial is disabled and the data shifts into the CRC-32 registers unaltered.
  • the circuit consists of four 8 bit Read Data Registers, one Write Data
  • the CRC circuit can be turned off in order to initialize the four registers to a known value.
  • the CRC-32 Write Data Register is on page 18. This is a parallel in, serial out shift register. The end of the 8032 -WR strobe will start the shift logic in page
  • This logic will synchronize the shift start to the OSC_2 clock.
  • a 3 bit counter will count out exactly 8 clocks, then shut the circuit off.
  • the X_EN_XOR bit can be used to initialize the CRC-32 circuit to a known value. Some CRC schemes start with all 32 bits set zero, others start with all bits set to one. When X_EN_XOR is set to logic "1", the CRC-32 circuit Exclusive-OR gates are all disabled. This allows the data written to the CRC-32 Write Data
  • the CRC-32 polynomial is: x ⁇ 32+x"26* x ⁇ 23+x ⁇ 22+x A 16- ⁇ -x A 12- ⁇ -x A ll - ⁇ -x A 10+x ⁇ 8+x' 7+ ⁇ - 5-l-x"4+x A 2 + x+1.
  • Table V shows the pinouts for the gate array
  • 5 PXRFSH18 OUTPUT_2 drives psram rfsh in 128K mode, A18 in 512K mode.
  • PRAM A4 OUTPUT 2 drives psram address line
  • PRAM UO OUTPUT 2 drives psram address line
  • OUTPUTJ 4mA, NORMAL SPEED, (OUTPUT PORT CONTROL BITS)
  • OUTPUTJ 2mA NORMAL SPEED OUTPUT.
  • OUTPUTJ 4mA NORMAL SPEED OUTPUT. (Used for CLOCKS).
  • INPUTJ TTL INPUT LEVELS WITH SCHMITT TRIGGER .
  • INPUTJ TTL INPUT LEVELS.
  • I/OJ 2mA OUTPUT DRIVER (with active high enable) , OPEN DRAIN OR TRISTATABLE.
  • INPUT IS TTL LEVEL I/OJ 2mA OUTPUT DRIVER (with active high enable).
  • the TPU 2740 124 functions as an On Screen Display (OSD) controller and also as a Closed Caption Data (CCD) VBI Data Slicer. This device has two functionally separate sections, the OSD and the CCD VBI data slicer.
  • the TPU 2740 contains a RISC based processor called the Fast Processor (FP) that is used to collect the VBI data, communicate with the serial bus, and control the OSD.
  • FP Fast Processor
  • Some of the internal TPU2740 circuits are running at four times the input clock frequency (This is 72MHz on the TVRO board with an 18MHz input clock). Communications between the 8032 and the TPU2740 are via the 3 wire IM Serial Bus 108.
  • the TPU 2740 is a fully digital chip, Baseband Video data must first be digitized before the TPU can use it.
  • a 6 bit Analog to Digital converter (uPC660) does this digitizing.
  • the uPC660 is shown on page 1 of the TVRO schematics in Appendix A.
  • the input video signal is about 1 Volt P-P and this signal must be “clamped” to a known DC level before it can be digitized.
  • the "VIDEO CLAMP AND FILTER” on page 1 does this using a “Back Porch Clamp” method. This clamp will bias the video signal into the A/D converter so that the "Back Porch” area will be at about 3.69 Volts DC. (The “Back Porch” is the area where the color burst sits.)
  • the resistor network on page 1 comprised of R15, R16, R17 and R18 sets the voltage levels for the clamp and the A/D circuits.
  • the A/D upper reference (pinll) is set to about 4.52 Volts and the lower reference (pin 13) is set to about 3.35 Volts. If the input video signal back porch area is biased to 3.69 Volts DC (at pin 12), then the maximum peak to peak swing of the video signal should always be between the voltages at the reference pins.
  • the TPU only uses the incoming video signal to strip off VBI Closed Caption Data. There is no need for the entire 4MHz video bandwidth so R7 and C6 form a low pass filter that rolls off the TPU video at about 1 MHz. (Note: The ratios of the clamp voltages are the same as the expected video signal IRE values.)
  • Circuitry in the TPU detects vertical and horizontal sync from the digitized video.
  • the OSD and VBI data slicers use these signals for timing functions.
  • a programmable comparator is used to detect vertical and horizontal sync pulses. It is important that the video clamp function correctly in order for this comparator to accurately detect sync.
  • the FP reads the output of the sync detection circuitry and is . able to count horizontal lines, thus is able to read VBI data from a particular VBI line and start the graphic on screen display at the correct video scan line.
  • the VBI circuitry on the TPU will load the VBI data into internal registers that the FP may read.
  • the FP reads this data and inserts it into a buffer. At a later time the VBI data may be read by the 8032 via the IM Bus.
  • the TPU requires good digitized video and a stable horizontal timing reference on pin 27.
  • the horizontal rate signal is + Burst Gate from the MCI 378 and is fed into the TPU at pin 27. If either of these signals is missing or poor, then the TPU will not be able to create a stable overlay.
  • the OSD portion of the TPU consists of cache memory, character memory, timing functions, and an external 256K by 4 bit DRAM (U9).
  • the FP reads high level graphic commands from the IM Bus and stores the graphic information in the external DRAM memory.
  • the TPU FP outputs the graphic data on the R, G, B, and FBLOUT lines. 8 colors may be generated using the R, G, and B outputs.
  • the FBLOUT (Fast BLanking OUT) signal determines if the video output should contain the R, G, B data from the TPU, or if the incoming live video should be passed through.
  • the TPU has a 256K x 4 DRAM (U9) for storing overlay screens and data. This is a fast page mode DRAM and refresh logic is avoided by constantly reading out the screen data, even when there is no overlay on the screen.
  • R,G,B COLOR CONVERTER R,G,B COLOR CONVERTER.
  • the StarSight Telecast graphic display requires 8 colors, black, white, gray, yellow, light yellow, light green, and red. These colors are not the standard 8 NTSC saturated colors that the TPU puts out.
  • a "Color Converter Circuit” is required to translate the TPU saturated digital colors into the StarSight graphic display "pleasing" colors. This circuit is on page 2 of the PCB schematic.
  • the Color Converter if made from three "8 into 1 analog switches". There is one switch for each of the R,G,B outputs. There is a precision voltage divider that creates the desired R,G,B voltages. The analog switches route the proper voltage to their outputs based on the 3 bit digital R,G,B signal from the TPU.
  • the TPU R,G,B outputs are programmed to be open drain so that a full TTL level swing is available to the multiplexing analog switches.
  • R14 and C18 on page 2 form an inexpensive R-C delay for the Fast Blanking Signal to compensate for delays in the R,G,B channel.
  • the Motorola MCI 378 is used as a main building block for the Video Synchronizer.
  • the MC1378 operates in REMOTE MODE (pin 1 is set HIGH). In this mode, external video is required to create the synchronizing timing signals. See page 3 of the TVRO Schematic of Appendix A for a block diagram of the 1378.
  • a 1 volt peak to peak NTSC video signal must be fed into pin 24 to provide timing information for both the 1378 and the TPU.
  • the signal at pin 24 is the called the "Remote Video Signal”. This signal is internally clamped in the 1378 and then Composite sync is separated out. Composite Sync is used to separate out Vertical Sync and also to lock the 4.03 MHz Horizontal Phase Locked Loop. Both Composite Sync (pin 39) and Vertical Sync (pin 38) are externally available for debug and timing.
  • the separated composite sync is used to lock the 4.03 MHz PLL (using PD1).
  • the VCO in this PLL is formed around a 4.03MHz ceramic resonator.
  • the free running frequency of this ceramic resonator must be adjusted with C39.
  • the best way to adjust this VCO is to use a frequency counter and adjust C39 until the frequency at Ul-5 is 15,750 Hz. This adjustment is made with the Video In signal disconnected so that the VCO is free running.
  • Burst Gate (MC1378 pin 5) is about 4uS wide and is centered around the 3.58MHz color burst. This signal is the main timing reference for the overlay display. It is used extensively by both the 1378 and TPU 2740.
  • the TPU uses Burst Gate to decide when to start the overlay. There is a programmable counter in the TPU that sets the delay from Burst Gate to the overlay start. (The overlay starts when + FBLOUT goes low.) Any jitter on Burst Gate will cause an annoying side to side motion on the overlay.
  • the color burst from the remote video is used to lock the 4X color sub carrier oscillator using PD3 which is gated by burst gate.
  • Phase of the locally generated composite video from the encoder section is compared against the same sub carrier reference used to lock PD3. This is done by means of PD4 so that the sub carrier phases of both the local and the remote signals are made essentially equal.
  • PD1 - compares and locks the internally counted down 4.03 MHz VCO to the incoming remote horizontal sync. It is fast acting to follow VCR source fluctuation. Its PLL filter network consists of C24, C38, and R19.
  • PD2 - is not used in this design.
  • PD3 - a gated phase detector, which locks the crystal oscillator frequency divided by four to the incoming remote signal burst.
  • PD4 - controls the internal phase shifter to assure that the outgoing local color burst has the same phase as the incoming remote burst at PD3.
  • the remote video is AC coupled and fed in through pin 24 and clamped to proper DC level (blanking is at 0 V).
  • the clamped video is fed to the Fast Video Switch where switching between the local and the remote video occurs controlled by Overlay Enable at pin 25.
  • the second path leads to the PD3 where the remote video burst is compared against crystal oscillator frequency divided by four.
  • the third path leads to Identity Detector which determines whether incoming signal is PAL or NTSC.
  • the local video is generated from R, G, and B signals which are direct coupled, 1 volt peak to peak inputs at pins 14, 15, and 16. After that follows the Color Difference and Luma Matrix which produces B-Y, R-Y, and the luminance -Y signals.
  • the B-Y and R-Y signals are clamped and sent to their respective modulators. Modulated B-Y and R-Y signals are summed together thus making 3.58 MHz NTSC chroma signal which is fed out pin 18.
  • This chroma signal is filtered by a 3.58 MHz band-pass filter consisting of C33, C34, C35, R22, R13, and Tl. The filtered chroma signal is fed back in at pin 20.
  • the chroma signal is added to the luminance signal which passes through a 400 nS delay line.
  • the need for this delay line arises because of the longer path for the chroma signal through the modulators and the band-pass filter.
  • the delay line should have at least 4 MHz bandwidth, and good linearity through its entire bandwidth as well as linear group delay.
  • the chroma and luma signals combined make the composite NTSC video signal which is then clamped by the local video clamp and fed to the fast video switch to be mixed with the remote video at the output pin 27.
  • the two burst amplitudes are compared in the ACC detector and made equal using a variable gain ACC amplifier in the locally generated chroma path.
  • the absolute burst amplitude of the remote signal is detected by the kill detector, the chroma of the locally generated signal being mrned off when the remote burst falls below a predetermined level.
  • the kill level can be adjusted by changing the value of the resistor R3 at pin 31. 470K kills at about 10-20 mVp-p remote burst. Normal burst is 286 mVp-p. POWER SUPPLY
  • the system requires 5 VDC digital, 5VDC analog, and possibly 12 VDC analog (for certain RF Modulators).
  • the current requirements are: 5 VDC Digital 550mA
  • the microprocessor -PWRBAD line is set to zero at least lOmS before the 5 VDC Digital supply drops below 4.75 volts. This allows the microprocessor to complete any pending database transactions and do an orderly shutdown of the DRAM. This is accomplished by monitoring the unregulated power with the Seiko S80731AN power supervisor IC (U2). After the unregulated supply drops below about 8 volts, the S80731AN will assert -PWRBAD. This causes an interrupt in the microprocessor which will initiate power down subroutines. U3 monitors the 5VDC supply and controls the -RESET line into the DBE 1200. This generates a clean reset signal during power up and power down. I.R.
  • the I.R. Transmitter 116 function is done with a MC68HC05C9 microprocessor.
  • This microprocessor is programmed to interface with the software serial bus 110 for communication with the 8032..
  • This microprocessor can generate pulses on its output pin that simulate IR signals for most VCR's.
  • MC68HC05C9 contains the executable program and the codes and sequences to control a VCR via Infrared.
  • Port B on the MC68HC05C9 is used to set the serial address that it will respond to.
  • the clock signal is generated by a programmable clock divider in the DBE 1200 gate array.
  • Figure 6 illustrates how packets 300, messages 302 and commands 304 are related.
  • Figure 7 provides further details of packets 300. Unless otherwise noted, all fields are binary 2's complement numbers. All undefined bits within fields are reserved, and initialized to zero. All multi-byte variables are stored most significant byte first (big endian format), unless otherwise noted. Notable exceptions are the
  • All viewable text strings are comprised exclusively of printable characters, where printable is defined as any character with ASCII values in the range of 32 (20H) to 122 (07 AH), inclusive. Both upper and lower case letters are supported. All fixed fields which contain ASCII strings that do not fill the field are to padded with
  • NULL ASCII value 0 characters. Unless otherwise specified, strings which do fill the field are not NULL terminated.
  • Packets 300 consist of error detection information and information to be operated on by a subscriber unit.
  • the packet fields shown in Figure 7 have the following descriptions, as shown in Table VI:
  • Field Description sync Code number indicating the start of a Packet. Used to locate the start of a Packet when transmission errors occur. Value is always 2C(hex). size Is the total size of the packet, in bytes. This includes the
  • packet time stamp Is the four byte time stamp of the minute the packet was transmitted. This field is used by subscriber units to differentiate data streams on recorded mediums (such as VCR tapes) from live data streams. The time is encoded as minutes since January 1, 1992, rounded to the nearest minute boundary. Since packet headers are not guaranteed to be transmitted on minute boundaries, the maximum error of this field is up to +/- 30 seconds.
  • vbi Stream ID Is a two byte number identifying the unique ID of the VBI stream the command has been transmitted on. This field may be used by subscriber units to identify their assigned "home" data stream, where their key distribution message will be broadcast.
  • CRC1 Least significant word (16 bits) of the 32 bit cyclic redundancy code (CRC-32) value for the Packet header .
  • CRC is computed over the 'sync' and 'size' fields. This field is stored least significant byte first (little endian format).
  • Command An entity that contains information pertaining to a specific portion of the database, or time markers, or user authorization information. Each type of Command contains a unique code number and a length field.
  • CRC32 32 bit cyclic redundancy check (CRC-32) value. The CRC is computed over the 'sync', 'size', 'CRC1', and 'Message' fields.
  • the CRC32 generator polynomial is ⁇ 32 + ⁇ 26 + ⁇ 23 + ⁇ 22 + ⁇ 16 + ⁇ 12 + ⁇ ll + ⁇ 10 + ⁇ 8 + ⁇ 7 + ⁇ 5 + ⁇ 4 + ⁇ 2 + ⁇ l
  • This field is stored least significant byte first (little endian format).
  • Messages 302 are the information bearing portion of a Packet 300. As shown in Figure 8, they consist of one or more Commands 304. Messages contain an integral number of Commands and Commands are not split between Messages. The 'size' field in the packet header is used to determine when all Commands have been processed. The optimal size of the Message field is 250 bytes or less. Commands that are larger than 250 bytes should be contained singly in a packet. The bytes following the last byte in the last command is always the first byte of the CRC32 field. Commands 304
  • Commands 304 are the elements of the StarSight Data Transmission Network required to build a TV schedule database, maintain the current time of day, and handle user authorization and security issues.
  • the different Commands are distinguished by a unique value known as the
  • 'Cmd type' It is contained in the least significant 6 bits of the Command's first byte. A total of 64 unique command types are possible.
  • the second field is 'Cmd length', used to determine the byte size of the Command. The size includes the 'Cmd type' and 'Cmd length' fields. The 'Cmd length' field may be a one or two byte quantity.
  • Table II lists all commands and specifies the size of the 'Cmd length' fields. Also included in this table is the encryption offset for the command. This concept is discussed in the section that follows this table.
  • the most significant bit of the Command's first byte is a flag that signals whether the command is encrypted or not. When set, the command is encrypted, . when clear, not encrypted. It is probable that the only commands which are passed to the Subscriber Unit in an encrypted format are Show list, Authorization, and Key Distribution Commands. The Subscriber Unit should however be prepared to decrypt any command.
  • the starting offset of the encrypted portion of the command is also listed in the previous table. Most commands leave a portion of their contents in the clear so that network entities which process the packet stream may filter out unneeded commands without decrypting the guts of the command. (Note that the encryption offset for fumre commands may be changed when me commands are actually implemented.)
  • the second most significant bit of the command's first byte indicates which of two program keys are to be used when decrypting the command.
  • decryption program key 0 is used, when set, key 1 is to be used.
  • the initialization vector is an 8 byte field that is always prepended to the start of the encrypted byte stream.
  • the padding is appended to the byte stream before it is encrypted. The purpose of the padding is to help the Security Module determine if the encrypted data has been "tampered" with.
  • Enough pad characters are added to make the length of the raw data stream a multiple of eight. If the length begins as a multiple of eight, 8 pad characters are added. The value of the pad characters are the number of fill bytes that have been added; i.e., if 3 extra bytes are added to the command then each fill byte will have the value 3.
  • the encrypted data within the Command is stored as shown in Figure 9. Fumre revisions of this command set may append field definitions onto existing commands. Command processors should be prepared to ignore all data that follows the last recognized field.
  • the unit number is used to identify a particular unit within the batch group. Up to 255 units may be contained within a batch group.
  • Commands required to build the subscriber unit database are typically sent repetitively, in the order shown in Table VIII:
  • Theme Categories Always acquired (if not already acquired).
  • Theme Subcategories Always acquired (if not already acquired).
  • Regions Region's list of channels is acquired if the unit has been authorized.
  • Channel Data Channel data is acquired if the channel is in the region's list of channels.
  • Show lists Show list is acquired if it is applicable to an active channel in the region's list of channels. Show lists give the schedule data for a single channel for a single day. The current day's data is sent more often than succeeding day's data. Show Titles Show title is acquired if it is referenced in some acquired
  • Time Commands ( Figure 10) specify the current time of day and date. They are sent periodically, at a predetermined rate. Subscriber Units 52 ( Figures 1-4) should reset their current time of day and date to agree with the value received in this message.
  • the fields of time commands shown in Figure 10 are as described in Table EX: Field Description
  • Cmd type Command type 1. Identifies command as a Time
  • program decryption keys should be used to decrypt this command.
  • Cmd length Number of bytes in the command (including the type and length fields).
  • Time Current time of day and date encoded as number of minutes from midnight, January 1, 1992.
  • Time of day and date is Greenwich Mean Time.
  • DS fig Daylight Saving flag Flag indicating if Daylight Saving is in effect. Sent whether or not default time zone uses Daylight
  • time zone offset field is not a two's complement binary number, default time offset
  • time zone offset field is not a two's complement binary number, default time offset
  • Four bit field indicating the number of hours offset from Greenwich Mean Time to the time zone of the data provider station transmitting the StarSight data. Intended to be used when displaying local time before the Subscriber Unit has been authorized (which sets the real time zone).
  • the legal range for this field is from 0 to 12 binary. time (sees) Is the low order seconds part of the time field, stored previously in the command. The resolution of this field is seconds past the minute. The legal range is 0 to 59 inclusive.
  • Table IX Daylight Saving Time Change Command The Daylight Saving Time Change Command defines when the next Daylight
  • key ID Decryption key ID. Identifies which of two current
  • program decryption keys should be used to decrypt this command.
  • Cmd length Number of bytes in the command (including the type and length fields).
  • Enable Daylight Time of day and date when the Daylight Saving time would Saving be enabled at the Greenwich Meridian Encoded as number of minutes from midnight, January 1 , 1992. Time of day and date is Greenwich Mean Time. The enable time is always less than the disable time.
  • Table X Region Command The Region Command identifies all channels for which StarSight Data is available and could possibly be received by a Subscriber Unit in the given region. One Region Command is sent for each region in the area serviced by a data provider station. For example, the channel lineup for each cable system constitutes a region. The Authorization Command sends the region ID. Once the region ID is known, the Channel Data for each channel in the region can be acquired from the Channel Data Commands.
  • the channel IDs in this command are not needed by the subscriber unit after it has acquired the Channel Data for each channel in the user's region. However, the region ID and version must be held in case the Channel Data is lost (e.g., power outage) or has changed and must be re-acquired.
  • Channel ID entries are listed in the default order that Subscriber Units should display them in until the user has changed the sequencing using a setup screen.
  • Channel ordering is more or less numerical, and Channels such as HBO and DISNEY are all given a native channel number equal to 1 and probably ordered alphabetically by the 'name-affiliation' field.
  • region type Indicates if region is a broadcast, cable, or satellite system.
  • prime offset Offset in units of 1/2 hours from 6:00PM, to prime time for the region.
  • prime offset 1 means prime time starts at
  • date type flag Is a flag indicating how the date field in this command should be interpreted. If this flag is set, the date represents when the information in this command expires. If the flag is clear, the date represents the time the information in this command becomes valid. Date Specifies the time when the information in this command either expires or becomes active. See the explanation of the date type flag. The date is encoded as number of minutes from midnight January 1, 1992, Greenwich mean time. nbr Chan IDs Number of channel IDs in the region. This number must be greater than 0.
  • Channel ID Channel ID number used to identify the Channel Data
  • Maximum tunable channel is channel 511.
  • tune channel number is sent in this command to avoid having to send a Channel ID entry for each cable system that places the channel on a different tuning channel number.
  • satellite numeric ID 5 bit field representing the numeric portion of the alphanumeric satellite identifier (i.e. the '4' of satellite S4). This field is present (in all Channel ID entries) only if the
  • the field is broken up over two consecutive bytes.
  • the Channel Data Command gives channel information used for various displays.
  • Channel Data Commands are sent for each channel in all the regions serviced by a data provider station (PBS station node).
  • the subscriber unit compiles information on all the channels in its region using the Channel Data Commands that contain a Channel ID entry matching one in its region list.
  • key ID Decryption key ID. Identifies which of two current
  • program decryption keys should be used to decrypt this command.
  • nbr entries Number of Channel ID entries in the current command (not the total number in the system). This field must always have the value of 1 (i.e. only ONE channel entry can be included in each command.)
  • nat chan msb Most significant bit for the 'native channel nbr' field.
  • Channel ID Channel ID number used to identify the Channel ID entries that match those in the subscriber's region.
  • nbr text). This flag must be set if the native channel number is specified as zero.
  • native channel nbr The channel number associated with the channel if it were in a broadcast region. This is the number used to identify the channel when the 'name fig' is 0. Normally this number matches the tune channel number; however, on cable systems channels get moved around. E.g. channel 5 could be on cable channel 29. In this situation, the tone channel number will be
  • name_flg field in this command must be set.
  • name abbreviation A bit field indicating which characters from the name bits affiliation string should be used as the stations "call letters”.
  • the MSBit (bit 7) of this field represents the first byte in the name affiliation string (byte 8), while the LSBit (bit 0) represents the last byte from the string (byte 15). (i.e., a value of 11110000B for this field, with a name affiliation string of KTVU-FOX would indicate the stations call letters are KTVU).
  • name fig field a total of one to four bits must be set in this field.
  • name-affiliation Up to 8 character ASCII text string used to identify the channel for display purposes. Padded with Null characters if . less than 8 characters long. This string may not be NULL terminated if it is eight characters long. Table XII
  • Show list Commands provide schedule data for one day for a given channel. Show list commands do not contain schedule gaps (even for periods when the channel is off the air). Show list commands are sent for every channel in all regions of the system. Show list commands contain multiple Show Slot entries, with each entry corresponding to a single show in the channel's schedule.
  • Show list Commands represent at least 24 hours of schedule data.
  • the first entry for a show list begins at midnight, Greenwich Mean Time. Programs which straddle the boundary between consecutive Show lists are represented only once, in the Show list in which their start time resides.
  • the next Show list represents the portion of time in which a program from a previous Show list overruns into it with a dummy show entry.
  • These filler entries are recognized using the 'dum fig', which when set indicates the entry for the show at this time slot can be found at the tail end of the previous day's show list. Only the first entry in a show list can have the 'dum fig' set.
  • Dummy show entries operate identically to valid show entries, except that their title and description text may be substituted with something that labels it as a filler entry. If a program's start time coincides exactly with the Show list boundary time, it will be represented only once, in the next Show list.
  • Show list Commands This allows the Show list Commands to be discarded if they are not applicable to the subscriber unit's region or have already been received. Ignoring unneeded Show lists may help a Subscriber Unit's data processing throughput, since decryption is time consuming.
  • the fields of the Show list Command as shown in Figure 14 are defined in Table XIII.
  • key ID Decryption key ID. Identifies which of two current
  • program decryption keys should be used to decrypt this command.
  • version Show list version number Used to identify when changes have been made to me Show list for the given day. 'version' starts at 0 when first sent over the network and increments for every change to the Show list for that day within the time period (i.e. one week) that the given day is active. If the version field differs from the value currently held by the subscriber unit then the new schedule replaces the current one.
  • Channel ID Channel ID number identifying the channel whose schedule is being sent. Matches the channel ID number in one of the
  • nbr show slot entries Number of shows on this channel for the entire day, counting the dummy entry if one exists.
  • SID Show ID number. Unique 20 bit number used to identify the
  • Show Title command containing the show's title This field may have a zero value, which indicates no show information is present.
  • DID Description ID number Unique 16 bit number used to identify the Show Description Command, which contains the show's episode description. If a description for this show does not exist, die DID flg will be left clear and this field will be omitted. This field may not have a zero value.
  • the uncompressed show title must be between 1 and 86 bytes in length, inclusive. Since the display capabilities of Subscriber Units is limited, titles which are greater then 38 bytes in length may be truncated.
  • Show Title Commands must be saved in the database if die show is in the Show list for at least one channel in the subscriber's region. All other Show Title Commands should be ignored. Show Titles that are needed are recognized by matching the SID number in the Show list with the SID number in the Show Title Command.
  • the fields of the Show Title Command as shown in Figure 15 are defined in Table XIV. Field Description
  • program decryption keys should be used to decrypt this command.
  • Command is of interest to the subscriber unit only if this number is also found in die Show list for some channel in the • unit's region. This field is never passed with a zero value.
  • Theme ID Number that identifies the Theme type and genre information appropriate for this program. Used for Theme searches.
  • Subcategories have sets of Theme ID numbers identifying the types of shows to be selected when a Theme search is performed for that sub category. Shows whose 'Theme ID' field matches one of the values in the set are selected. A zero value indicates no theme information is present.
  • Show Description Commands contain the description of an episode of a program and some program attributes used in Theme searches. Show descriptions are usually compressed using the same Huffman encoding scheme used for show titles.
  • the uncompressed show description must be between 1 and 162 bytes in length, inclusive. Since the display capabilities of Subscriber Units is limited, descriptions which are greater then 120 bytes in length may be truncated.
  • Show Description Commands are sent for all shows that have descriptions in all regions serviced by the data provider. Show Description Commands must be saved in the database if the DID is referenced in the Show list for at least one channel in the subscriber's region. All other Show Description Commands should be ignored. Show Descriptions that are needed are recognized by matching the DID number in the Show list with the DID number in the Show Description Command.
  • the fields of the Show Description Command as shown in Figure 16 are defined in Table XV.
  • key ID Decryption key ID. Identifies which of two current
  • program decryption keys should be used to decrypt this command.
  • Cmd length Number of bytes in the command (including die type and lengdi fields).
  • DID Description ID number Unique 16 bit number identifying this episode description. This Show Description Command is of interest to the subscriber unit only if this number is also found in die Show list for some active channel in the unit's region. This field is always non-zero.
  • BW/C Flag indicating if show is broadcast in black & white or color.
  • Theme Category Command specifies the major categories displayed in the subscriber unit's theme function. These categories form the first level of indexing in the hierarchical theme search function. For each major theme category a unique 8 bit ID number and a text string is specified. The text string names the category entry. The entries are listed serially within the command in the suggested presentation order.
  • the command includes a version number which is incremented each time the theme category command is changed. Subscriber Units should replace existing versions of the command stored in memory when a command with a differing version number has been transmitted.
  • the fields of the Theme Category Command as shown in Figure 17 are defined in Table XVI. Field Description
  • Cmd type Command type 11 (OBH). Identifies command as a Theme Category Command. enc flg Flag indicating if die current command has been encrypted.
  • nbr categories Total number of primary Theme categories; i.e., number of
  • Category name length Number of bytes in the 'Category name' field. Used to locate the start of the next entry and determine the length of the text, string that follows. This field will never have a zero value (first generation Subscriber Units will crash if this is passed as zero).
  • Category name Text string naming the category. This should be used to display the name of the category.
  • the text is an uncompressed, null terminated ASCII string.
  • the Theme Sub-category Command specifies the sub-categories displayed in die subscriber unit's dieme function. These are displayed after the user has selected a major theme category. Each major theme category has one or more sub categories, which form the second level of me hierarchical search scheme. The description of each sub category includes the 8 bit ID of the parent category, a unique 16 bit theme ID number and a text string which names the entry. The entries are listed serially within the command in die suggested presentation order.
  • the command includes a version number which is incremented each time the theme sub-category command is changed. Subscriber Units should replace existing versions of the command stored in memory when a command witii a differing version number has been transmitted. All subscriber units should store these sub category names if they do not already have an entry with the same Theme Category ID, Sub category ID, and version number.
  • the fields of the Theme Sub-category Command as shown in Figure 18 are defined in Table XVII. Field Description
  • Sub-category Command enc flg Flag indicating if the current command has been encrypted.
  • key ID Decryption key ID. Identifies which of two current
  • program decryption keys should be used to decrypt this command.
  • Subcategories i.e., number of Theme sub category entries that follow. This field will never have a zero value (First generation Subscriber Units will crash if this is passed as zero). Entry length Total number of bytes in current sub category entry including this byte. Used for determining the start offset for the next entry and die number of bytes in the 'sub category name' field. This field will never have a zero value. attributes flag word An 8 bit flag word used to specify the properties of the dieme sub-category. The meaning of each field in the flag word is as follows :
  • Bit 0 DISPLAY NAME WITH DESCRIPTION - when set, die dieme sub-category name may be displayed with the description of a show widi this theme id. (Some sub-category names like ALL or OTHER may appear awkward when displayed widi a description. These types of entries will have this bit cleared. Other entries, such as COMEDY or DRAMA are desirable additions to descriptions, and hence may have mis bit set.)
  • Bits 1-7 RESERVED. nbr Theme IDs Number of Theme ID entries that follow this field. In the above diagram, the value of mis field would be 'k'. This field will never have a zero value (First generation Subscriber Units will crash if this is passed as zero).
  • Theme ID 1-k Set of 16 bit Theme ID numbers used to identify shows that should be selected when a Theme search is done for this sub category. That is, any program whose Show Title or Show Description entry contains any one of these Theme ID numbers would be included in die list of shows selected by this Sub category. These theme ID's are sorted in ascending order. These fields will never have zero values.
  • the Subscriber Unit Reset Command allows the StarSight Control Center to reset selected subscriber units. Different types of reset can be sent.
  • the fields of the Subscriber Unit Reset Command as shown in Figure 19 are defined in Table XVIII.
  • Bit 0 When set instructs the unit to clear the semi-volatile memory where the acquired network data is stored. When die unit restarts, it will begin re-acquiring network data (also known as a cold boot).
  • Bits 1-7 Reserved, serial nbr 5 byte serial number which idnetifies die subscriber unit this . command is addressed to. A serial number which is all zeroes indicates a "group broadcast", so all subscriber units should be prepared to respond to such a command.
  • the Aumorization Command au iorizes the subscriber unit to begin collecting and displaying schedule data. It is sent when a subscriber signs up for the StarSight service.
  • Audiorization Commands are addressed to individual subscriber units using the serial number given to a Customer Service rep during the audiorization process.
  • the first generation subscriber units are limited to supporting a single region and one or two separate VBI lines on the same toning frequency.
  • the fields of die Audiorization Command as shown in Figures 20-22 are defined in Table XIX. Field Description
  • Audiorization Command enc flg Flag indicating if die current command has been encrypted.
  • key ID Decryption key ID. Identifies which of two current
  • program decryption keys should be used to decrypt this command.
  • Cmd lengdi Number of bytes in the command (including die type and lengdi fields).
  • the cryptogram must be decoded using die subscriber unit's private RSA key assigned to the StarSight Security processor at time of manufacture.
  • the data is stored as follows before encryption : batch nbr 32 bit number identifying die encryption group to which the subscriber unit belongs to. When combined widi die one byte unit number that follows this element, a unique address for the subscriber unit is formed. These numbers are assigned by this command and used to address this unit or its' batch group in all subsequent commands. unit number 1 byte unit ID. Each unit within a batch group is assigned a unique unit ID.
  • program key 1 The other 8 byte decryption key. len of data following Is the number of data bytes remaining in the authorization block, not including die empty reserved data block and this field. In the current definition of this command, mis field is equal to die constant 20 (14H).
  • DP source This field has die same meaning as die source field in die region command. It is intended to indicate which input source the data provider signal is on. sign flg Sign bit for the time zone offset field, which follows. If set, it indicates die time zone offset is negative, and should be subtracted from Greenwich mean time. (For data provider stations West of the Greenwich Meridian, i.e. die entire US and Canada). Note diat diis implies the time zone offset field is not a two's complement binary number, time zone offset Four bit field indicating die number of hours offset from
  • the legal range for this field is from 0 to 12 decimal. (This field should be interpreted identically to die default time zone offset field contained in die Time command.)
  • the specific meanings of the code groups are TBD.
  • Primary Region ID Unique number identifying the region in which the subscriber unit is located. This field specifies the set of channels for which data is collected. It corresponds widi the region ID in the Region Command. First generation subscriber units can collect data for only one region.
  • Tune Channel MSB Most significant bit of the tune channel number field, which follows.
  • Tune Channel No Is the tuning channel number of the data provider. This information is transmitted in the audiorization command so tiiat the subscriber unit does not have to wait for a Channel
  • Satellite alpha ID 5 bit field representing the alphabetic portion of the alphanumeric satellite identifier (i.e. the 'S' of satellite S4).
  • Field value 1 represents the letter 'A', 2 is 'B', etc.. This fields is specified as zero if the dataprovider is a non-satellite source. If this field is non-zero, it's legal range is 1-26 inclusive, representing the alphabetic characters 'A' through satellite numeric ID 5 bit field representing the numeric portion of the alphanumeric satellite identifier (i.e. the '4' of satellite S4). The field is broken up over two consecutive bytes. The legal range for this field is 1-31 inclusive. transponder no 6 bit field representing the transponder number to be used to tune to this channel on a Satellite system. This fields legal range is 0-63 inclusive.
  • VBI line nbr VBI line number to be used for acquiring StarSight data VBI Stream ID Stream ID of primary data provider. The stream ID is transmitted widi each time command. Subscriber Units may use this to identify the VBI stream they are listening to. This may be useful for Subscriber Units while searching for the home data stream after a cable company has made an unannounced change to its channel mapping. RESERVED 10 byte field, reserved for future definitions. All first generation subscriber units will not interpret the contents of this data block.
  • the Long Assign InfraRed Codes Command specifies the control codes to be used by die Subscriber Unit Universal Remote Control chip to control a specific peripheral device.
  • the codes which describe the IR blaster language may optionally be sent for those devices diat are not in the URC chip's internal database. Transmission normally occurs while a Customer Service Rep is in contact with a user who has called StarSight because diey did not find die code group for their VCR/Cable Box/TV in the Subscriber Unit manual.
  • IR Codes may be sent eimer addressed to a specific unit via its Serial Number, or to groups of units with a given Product Code, Device Type (e.g. VCR), and Device ID. These commands may either be sent once per user request or repetitively when addressed to groups of SUs.
  • key ID Decryption key ID. Identifies which of two current
  • program decryption keys should be used to decrypt this command.
  • Interconnect A number corresponding to the way the components Configuration controlled by the SU (i.e. TV, VCR, cable box) are connected.
  • Vendor Specific Byte value whose use depends on die product to which diis command is addressed. For example, when addressed to a
  • Zenidi TV diis value is die tuning method to be used widi die downloaded IR codes.
  • Device Type Identifies the type of device (VCR, Cable Box, TV, IRD, ...) mat can recognize these IR codes.
  • VCR 0C IRD Device ID Code group number for the device diat recognizes these IR codes.
  • the Subscriber Unit (only if it has a matching address) replaces whatever code group number it currently has for the given Device Type witii is number.
  • die headend can directly set the code group for a specific user. This is not done if the Serial Number field in this command is 0. In diis case, die command is only processed if die user has already entered a code number that matches the Device ID for the same Device Type.
  • the SU saves the version number for each device type and only processes tiiose Assign IR Codes commands addressed to groups of units if its version number for the specified device differs from the version number in the command.
  • IR Codes Length Number of bytes in the IR Codes field IR Codes Information (normally IR codes) to be used by the URC chip to control devices of die specified type. Structure within diis field is determined by the URC chip manufacturer. Table XX Key Distribution Command
  • Key Distribution Commands give the current and next program keys to be used for decrypting encrypted commands. Subscriber units must watch die data stream for a Key Distribution Command containing its batch number. When the command is found it should send die audiorization bit mask, both keys, and the audientication data field to die StarSight Security processor. If the bit in die audiorization bit mask corresponding to die subscriber unit's unit number is 0 then the subscriber unit has been de-audiorized and must suspend data collection.
  • the fields of die Key Distributioin Command as shown in Figure 24 are defined in Table XXI.
  • program key 0 Cryptogram encoded using the batch key assigned to the subscriber unit's group.
  • program key 1 Cryptogram encoded using die batch key assigned to die subscriber unit's group.
  • audientication data 4 byte value used by die StarSight Security processor to authenticate the authorization bit mask and program key fields in this command
  • This command is used to transmit data bytes to one or more subscriber units.
  • the definition of the format and contents is private to subscriber units. The network does not attempt to interpret the data.
  • This command provides a hook for transmitting commands and initialization data to subscriber units during development, widiout having to define separate, formal, network messages for each function, many of which may be temporary in natore.
  • the fields of die Subscriber Unit Command as shown in Figure 25 are defined in Table XXII.
  • Subscriber Unit Command. enc flg Flag indicating if die current command has been encrypted.
  • key ID Decryption key ID. Identifies which of two current
  • program decryption keys should be used to decrypt this command.
  • Cmd lengdi Number of bytes in the command (including die type and lengdi fields). cmnd sub-type 1 byte field indicating what type of subscriber unit command this is. The following command types have been defined: 01 : Enter Diagnostics Menu if this command is addressed to the unit All otiier type values are reserved.
  • the schedule data hierarchy of data structores in descending order follows: CHANNEL DATA TABLE Contains Subscriber Units list of channels SHOW LIST Contains a list of Show Titles, descriptions, start times, and durations for a channel. SHOW TITLE Contains the Show Title attributes and title text. SHOW DESCRIPTION Contains show ratings, attributes, and description text.
  • Theme Categories and Theme SubCategories are used to select shows for viewing. They share a common data value (Theme Indexes) diat are used to extract shows that match a Theme Category /SubCategory pair.
  • Theme data hierarchy in descending order follows:
  • the Memory Manager allocates and frees Blocks of Memory as requested by die application portion of the Subscriber Unit.
  • the application software references Memory Blocks via a HANDLE.
  • the handle of a memory block is an index to a table entry containing a POOL INDEX.
  • the POOL INDEX is a scaled address that translates into the address of a MEMORY BLOCK.
  • the HANDLE approach allows MEMORY BLOCKS to be relocated as system objects age and die, widiout requiring specific updating of application data structores.
  • the Memory Manager periodically runs a garbage collection process to collect unused MEMORY BLOCKS and recombine them into larger blocks.
  • MEMORY BLOCKS can be relocated widi specific updating of application data structores.
  • die memory pool can be temporarily locked to prevent the relocation of blocks during critical periods.
  • Each MEMORY BLOCK contains as the very first element the size of, and the OBJECT TYPE of the Memory Block. This aids in the relocation and merging of MEMORY BLOCKS.
  • the OBJECT TYPES break up into two main groups.
  • the small OBJECTS which always can be defined in less tiian 16 Blocks of Memory.
  • each block of memory is 16 BYTEs long,.
  • Small OBJECTS have their OBJECT TYPE encoded in the first NIBBLE, and die lengdi in blocks encoded in die second NIBBLE of the first BYTE of the MEMORY BLOCK.
  • Large OBJECTS have their OBJECT TYPE encoded as the first BYTE of the MEMORY BLOCK , and number of allocation units as the second BYTE of the MEMORY BLOCK.
  • the Handle Table is a fixed allocation table, as shown in Figure 27, containing two types of entries; free entries and in-use entries. Free entries will always have their 2 MSBs set so as to not be confused with in-use entries.
  • In-use entries contain the Index into die Pool for database items mat are referenced via Handles; e.g.; Show Title entries.
  • a database item's Handle is an index into die Handle Table.
  • a database item's Pool Index can change due to garbage collection in the Pool, but its Handle will not change as long as that item exists in the database. Items deleted from the database retorn their Handle to die top of die free list.
  • Handle Table entry 0 is always the head of the free list.
  • the Table is initialized to all free entries with each entry containing tiie Index of the next entry.
  • the size of the Handle Table limits the number of database items that can be kept in d e Pool. Systems with various numbers of channels will require different Handle Table sizes.
  • the database show schedule access scheme is shown in Figure 28.
  • the Channel Data is maintained in the Internal Database Engine data structure called the Channel Data Table.
  • the Channel Data Table selects the channels accessed by a
  • the Channel Data Table is built by the system command processor from the Region Command and Channel Data Commands.
  • the channel related information is extracted from the Region Command and placed in the Channel Data Table.
  • the Region Id to use is extracted from the authorization command.
  • the Region Id is die key information for show schedule generation.
  • the Region Id selects the Region Command processed by die subscriber unit, which defines die Channels Id accessed, which defines die Channel Data Table, which defines die Show Lists, which selects die Show Titles and Show Descriptions, which reference the Themes Categories and Theme Sub Categories. Once the Channel Data Table is defined, the Channels are referenced directly through the Channel Data Table.
  • Each lower level table in the show schedule is accessed through a HANDLE.
  • the HANDLE is translated by the Handle Table into a pointer in memory.
  • the Channel Data Table contains information on each channel in the Region. This data is used for access to the schedule data ( Show Lists ) for a channel, toning, display on die Channel Banner, for channel gliffs, and during Setup. Further details are provided in Table XXIII.
  • Tune Channel Nbr Channel Number to be toned to receive this channel's broadcasts.
  • Tune Channel Number may differ from the . original channel number if the channel is on a cable system.
  • Channel 5 ( CBS ) might be broadcast on channel 17 on a cable network.
  • Satellite Nbr Satellite Transponder Number for acquiring Satellite broadcasts. Satellite Nbr Satellite Number, and Index used with the Satellite
  • Inact Flg Inactive Channel Flag This bit is set when the user specifies this channel as unwanted. When this bit is set no data is collected for the channel.
  • Name-Affiliation Text string giving channel's name and (if appropriate) network affiliation; e.g., "KTVU- FOX”.
  • the Channel Duplicates Table ( Figure 30) contains information on each channel in the Region diat is the duplicate of a base channel. This data is used to adjust die display of Blocks of pay-for-view type channels. All of the channels share a common base Channel Show List, but add a starting time to the offset of die base channel's Show List.
  • the Base Channel ID is not stored in the structure. Instead die structure is referenced as a Handle by the channel entry in the Channel Data Table. If a channel entry has duplicate channels, tiien die Duplicate Channel Handle field has a Handle Number to access the table by. Further details are provided in Table XXV. Field Description
  • a ' Show List Handle Table' ( Figure 31) contains Handles to Show Lists for every day of the week. This table is pointed to by the 'Show List Handle Table' Handle located in die Channel Data Table. Via this table we can access Show Lists representing a weeks worth of scheduling. Further details are provided in Table XXVII.
  • Start Time Start Time ( in number of minutes since midnight January 1, 1992 - GMT ) for the First Show in the Show List. Used for determining new schedule days as tiiey come in.
  • Table XXVIII Show Entry A Channel's schedule is given by an ordered sequence of Show Entries.
  • Entries give a show's duration, title, and possibly an episode description.
  • the entries are either 4 , 6, or 8 bytes long depending on whetiier the show has a description and/or Group ID.
  • Finding the entry that corresponds to a given start time requires the Entries to be scanned, in order, from the beginning of the list and adding Duration values. There must be no gaps in the Show List. Further details are provided in Table XXIX.
  • SID Handle Handle for the Show Title Entry that gives this Show's Title and Theme Category information DID Handle Handle for die Show Description Entry that gives this show's episode description and some additional Theme Category information. This field is only present if the 'DID Flg' field is set.
  • Group ID Value of the Group ID that is used by the Record Manager to identify shows that are members of a Record Group. Delimiters Prior to 1st show slot there will be an 'EEH' delimiter.
  • Show Titles ( Figure 33) contain the usually compressed text of a Show's Title. There is one entry per unique Show Title.
  • Show Titles are Pool based items.
  • An entry is created whenever a Show List is received (for a channel the Subscriber Unit is collecting data for) that contains an SID for which the Subscriber Unit does not already have die Show Title.
  • a Handle is allocated to it and die 'Need It' flag is set in the Show Title Handle Table Entry.
  • the entry size is determined by die length of the title.
  • a single Pool Block is reserved (containing a null title string) when a new SID is received in a Show List.
  • the entry is filled when the appropriate Show Title message is subsequently received and die 'Need It' flag is tiien cleared.
  • the entry may be relocated and expanded to multiple Pool Blocks (but its Handle will stay the same). Further details are provided in Table XXX.
  • Theme ID Unique number associated witii Theme Category Data for this show. This is an index into the Theme Category Data Table.
  • Show Title Handle Tables are Pool based tables used to determine if a show title is needed or if it has already been received. There is one Show Title Handle Table for each possible value that an SID can Hash to; i.e., 256 tables.
  • a Show Title Handle Table entry is made for every unique SID received in any Show List message for a channel that the SU is collecting data for.
  • the particular table that the entry is made in is determined by the SID's Hash value; that is, die SID's least significant 8 bits.
  • the Show Title Hash Table ( Figure 36) is a fixed size, pre-allocated table containing only Pool indices for each possible SID Hash value.
  • the SID Hash value is an index into this table.
  • the value in the nth entry is an index into the Pool for die Show Title Handle Table containing all SIDs received so far that Hash to n. Further details are provided in Table XXXII. Field Description
  • Show Descriptions ( Figure 37) contain the (usually) compressed text of a show's episode description. There is one entry per unique show description. Show Descriptions are Pool based items. An entry is created whenever a Show List is received (for a channel the SU is collecting data for) that contains a DID for which the SU does not already have the show description. That is, the 'need it' flag is set in the Show Description Handle Table entry. The entry size is determined by the length of the description. A single Pool block is reserved (containing a null description string) when a new DID is received in a Show List. The entry is filled when the appropriate Show Description message . is subsequently received and the 'need it' flag is cleared. At that time, the entry may be relocated and expanded to multiple Pool blocks (but its handle will stay the same). Further details are provided in Table XXXIII. Field Description
  • Bit Mask indicating show's attributes such as violence or profanity. See 'Show Description Command' for bit assignments.
  • Theme ID Unique number associated witii Theme category data for this episode of die show. This is an index into die Theme Category Data Table. Show Description Text string for the show name. Normally this string is compressed by Huffman encoding; however, if the 'compressed' flag is not set, the text is straight ASCII. String is null terminated.
  • Figure 38 depicts die database show title hash table access scheme. Show Description Handle Table
  • Show Description Handle Tables are Pool based tables used to determine if a Show Description is needed or if it has already been received. There is one Show Description Handle Table for each possible value that an DID can Hash to; i.e., 256 Tables.
  • a Show Description Handle Table entry is made for every unique DID received in any Show List message for a channel that the SU is collecting data for.
  • the particular table that die entry is made in is determined by the DID's Hash value; diat is, die DID's least significant 8 bits.
  • Nbr Entries Number of Table Entries. Used when searching table for matching DID values.
  • Table XXXIV Show Description Handle Table Entry
  • the Show Description Handle Table contains multiple entries. Each of these entries contains the fields shown in Table XXXV: Field Description
  • Table XXXV Show Description Hash Table The Show Description Hash Table ( Figure 40) is a fixed size, pre-allocated table containing only Pool indices for each possible DID Hash value.
  • the DID Hash value is an index into this table.
  • the value in the nth entry is an index into die Pool for the Show Description Handle Table containing all DIDs received so far that Hash to n. Further details are as follows: Field Description
  • Theme Category Table contains the definition of die Themes downloaded to die Subscriber Unit.
  • the Themes Categories are used to search for shows of a particular type.
  • Each Theme Category contains one or more Theme SubCategories.
  • Each Theme Category in the Theme Category Table has a Theme SubCategory Table associated widi it. Further details are provided in Table XXXVI. Field Description
  • pool item The type value indicates tiiat this is a 2 byte field since the length can become large due to the number of possible Theme Categories. Reference Count Number of times this table is referenced. Initialized so die garbage collector does not delete it. Version Version Number of the Theme Category Table New
  • Categories and Sub Categories are collected when die Version Number changes. New Theme Counts must be also be determined.
  • Theme Category ID The Theme Category's Unique ID assigned by the Head End. Used to Identify Theme SubCategories for this Primary Category.
  • Theme SubCategory The Handle to the Memory Pool Block containing the -
  • Theme Category The length of die text string in bytes. Used to locate die start Name Length of the next entry.
  • Theme Category Compressed text name of Theme Category. Huffman Name encoded.
  • the Theme SubCategory Table ( Figure 42) contains information about Theme SubCategories contained in a Theme Category. Each Theme SubCategory Table is referenced by one Theme Category Entry. Each Theme SubCategory Entry contains a name, qualifiers, and Theme Indexes. The Theme Indexes in Show Titles and in Show Descriptions are matched against the Theme Indexes in a Theme SubCategory. Theme Indexes tiiat match identify which shows are a members of a Theme SubCategory. Further details are provided in Table XXXVIII. Field Description
  • the Type value indicates diat this is a 2 byte field since the length can become very large due to die number of Theme SubCategories in the Theme Category.
  • Theme Category ID Theme Category ID of owning Theme Category. Reference Count Number of times this object is Referenced.
  • SubCategory Show Count of shows that reference this SubCategory.
  • a Show Count Title/Description pair should only be counted once.
  • SubCategory Theme Index [ ] Theme Indexes, ( 9 bits + Nbr extra Theme Index Bits ) long. This is implementation dependent.
  • the Head End tells the Subscriber Unit how many bits are required for the largest Theme Index. The default is 9 bits.
  • the Subscriber Unit can encode those as 9 bit values, or as 16 bit values.
  • SubCategory Name Compressed Text SubCategory Name.
  • This section describes the messages sent between all processors in a subscriber unit 52. All messages are described even tiiough some subscriber unit implementations may not use or require all of the messages.
  • Diagrams are given showing the format of the messages followed by a description of each of the fields in die message. Greyed fields represent currently unused fields, but the bits in these fields should be set to 0's in order to maintain compatability with future implementations. All fields are binary, 2's complement numbers unless otherwise noted.
  • the Database Engine and die I/O Processor communicate via an IM bus running at 1 Mb its per second.
  • the I/O Processor receives Data Transmission
  • Network data via one or more specified Vertical Blanking Interval line(s) and transmits the acquired raw bytes when requested by die Database Engine Processor.
  • the Database Engine controls the toned channel and specifies die particular VBI line(s) to be used.
  • the Database Engine also issues graphic display commands to die I/O
  • the Database Engine issues commands to d e I/O Processor in a packet
  • the I/O Processor transfers all packet bytes to a RAM command buffer and, at the completion of die transfer, begins executing the commands in the order they were received in die packet.
  • the I/O Processor sets a statos flag indicating tiiat it is busy until all commands have been executed. Packet size is always the first two bytes received in any command sequence issued to die I/O Processor. Only one command packet can be sent to die I/O Processor at a time.
  • the following commands define die primitive graphics operations needed to draw system display screens on a television set connected to or incorporating the subscriber unit 52.
  • Screen coordinates are based on (0,0) being in the upper left corner of the screen.
  • the TPU 2740 allows X coordinates as high as 503 but the system's maximum X coordinate is 251. This allows the system to keep X coordinates in a single byte and to have two pixels of different colors comprise a 'system pixel'.
  • (251,207) is the lower right corner of the screen and X coordinates received in commands must be doubled by d e 2740.
  • All colors in the following commands are comprised of two basic TPU 2740 colors in the upper and lower nibbles of the color byte. Using two separate colors in a single system pixel enhances the number of colors that can be shown. Setting a system pixel actually involves setting two successive 2740 pixels along the X axis using the two colors in the color byte. When areas are filled, die colors must be dithered. That is, the colors used for successive 2740 pixels along the X axis must alternate between the two colors given in the appropriate command color byte. Even rows start with color 1 while odd rows (i.e. Y coordinate is an odd number) start with color 2 and alternate between the two colors for successive pixels along the X axis.
  • the 2740's graphics routines clip output if the X or Y coordinate exceeds the limits of the screen. That is, graphics do not wrap if the coordinates of an operation go outside (0,0) to (251 ,207).
  • Shadow height Number of pixels along the Y axis for horizontal shadows.
  • small font delta X Number of pixels spacing along X axis for small font characters Used by Write ASCII String command.
  • small font delta Y Number of pixels spacing along the Y axis allowed for text lines written in small font characters. This value is added to the Y coordinate for the current text line when a carriage return character is encountered in a text string by the Write ASCII String command.
  • the Erase Screen command ( Figure 45) causes the I/O Processor to blank the screen and set all display buffer pixels to the specified "transparent" color. Further details are provided in Table XXXXI.
  • Rectangle Draws a rectangle of specified ditiiered colors. Rectangle can be filled, outlined, shadowed, and/or embossed in a single operation based on die corresponding flag bits set in the command. Each of tiiese operations can be done independently of die other operations. For example, an empty rectangle can be drawn by setting only the 'outline' flag bit.
  • both 'fill colorl' and 'fill color2' should be the same value. Rectangles should be filled, then embossed, outlined and shadowed . in that order. Further details are provided in Figure 46 and Table XXXXII.
  • Rectangle command upper left X X coordinate for the upper left corner of the rectangle, upper left Y Y coordinate for the upper left corner of the rectangle, width Rectangle size in pixels along the X axis, height Rectangle size in pixels along the Y axis, pop-up ID ID number assigned by die command initiator (value is equivalent to nesting level). This field is only used for debugging.
  • Rectangle to be restored is recognized by its 'pop-up ID' field. Restoration coordinates allow a previously saved rectangle to be brought back at a different place on die screen, such as when moving a cursor or icon of some sort. Further details are provided in Figure 49 and Table XXXXIV.
  • the Move Rectangle Vertically command ( Figure 50) causes the pixel contents of a specified rectangle to be copied to anotiier place in display memory, effectively moving the rectangle on the screen. Only vertical moves are handled by this command. Rectangles are scrolled up or down one line at a time until die specified scroll size has been achieved. Further details are provided in Table XXXXV.
  • Negative numbers mean shift the rectangle to a position 'scroll size' pixels higher on the screen. Positive numbers mean shift the rectangle lower on the screen. delay Number of horizontal sync pulses to count before starting the next single line scroll operation. Provides some scroll rate control for the Database Engine.
  • Table XXXXV Write ASCII String Output an ASCII string to the screen. Starting coordinates for the first character of the string correspond to die character's upper left corner. Successive characters are on a horizontal line until an ASCII carriage return character is encountered; subsequent characters are output 'delta Y' (as specified in the Set Graphics Defaults command for each font) pixels lower on the screen and restarting at the original X coordinate. Illegal characters cause a "?” to be output in their place. Characters can be output in one of two fonts. Only upper case characters are supported in die large font. Further details are provided in Figure 51 and Table XXXXVI.
  • Channel Icon command upper left X X coordinate for upper left corner of the icon.
  • Transparent Color command Network Data Acquisition and Control Interface System data is received via the PBS network, MTV, Showtime or other transmission source on one or more Vertical Blanking Interval (VBI) lines.
  • VBI Vertical Blanking Interval
  • the I/O Processor acquires data from each line (if there are multiple lines) and stores it into separate input buffers. Data is stored in the IOP's input buffers even if the framing code is bad for a given field. In this case, two bytes of 03s are stored. The data is only transferred to die Database Engine Processor if the command packet contains at least one command tiiat requires a response.
  • the I/O Processor When responding to a Database Engine request, the I/O Processor transfers as many bytes as it can that is less than or equal to die number of requested data bytes. If an input buffer becomes full, the I/O Processor begins dumping the data until the buffer is emptied or a reset is issued. A full buffer causes the 'ovfl' flag to be set in the next response it sends to die Database Engine.
  • the I/O Processor can handle up to 2 VBI lines of system data or one line of system data and closed caption data from line 21. Data is always acquired from both fields for each system data VBI line. Closed caption data is also acquired from both fields.
  • the I/O Processor responds witiiin 10 milliseconds to any command tiiat requires a response. Stop VBI
  • the Stop VBI command ( Figure 55) causes the I/O Processor to initialize its internal variables related to VBI processing. All VBI buffer counters are cleared and. any acquired data is lost. VBI data acquisition is stopped until a Set VBI Control Parameters or a Flush VBI Buffer command is received. Further details are as follows:
  • VBI line 1 Primary VBI line number whose data is to be acquired, fram code 1 Framing code to be used for VBI line 1.
  • rate 1 Data rate for VBI line 1.
  • the Read VBI Statos command ( Figure 57) causes the I/O Processor to retorn statos information on the specified VBI line buffer. Further details are provided in Table XXXXEX.
  • VBI line VBI line number whose statos is being requested. 0 means retorn statos for all active VBI lines.
  • VBI line VBI line number whose status is being retorned. 'VBI line'
  • VBI line VBI line number whose statos is being retorned.
  • data byte Successive data bytes from the buffers for the given VBI line.
  • Bytes are retorned in first in, first out (FIFO) order. Number of bytes returned will be less tiian or equal to the number of requested data bytes. No data bytes are returned if the buffer is empty.
  • FIFO first in, first out
  • the Flush VBI Buffer command causes the I/O Processor to either transfer all existing data in a given VBI buffer or to reset VBI processing for a given VBI line without stopping data acquisition.
  • VBI processing is re-enabled with the parameters sent in the last Set VBI Parameters command. This command re-enables VBI processing that had been suspended due to a Stop VBI command.
  • Reception Group (or RG) is a named entity which has an associated
  • Satellite "TVRO North all channels receivable in North America via America” Home Satellite antenna Table LIV
  • Some RGs, and certainly Cable RGs, will have information associated witii tiiem which is of interest, and may be helpful in marketing and other operations. Some examples of such information are: Name of Contact Telephone Number FAX Number ADI DMA
  • Each StarSight Subscriber Unit is considered to be a "member", so to speak, of one and only one RG.
  • the SU When it is first put into operation, the SU must be informed as to which RG it is in, so that it will display die Lineup which is true for that RG. Lineup Explanation
  • a Lineup is die actual list of channels that are received in a particular RG.
  • a Lineup can usually be thought of as a description of information that could be obtained by viewing a physical geographic map (a map that shows coverage of TV stations and cable systems, that is); it contains information about which channels are available in the physical area that die Lineup covers. The purpose of a Lineup is to define what channels in a given RG need to be supported widi data.
  • the Station List is made up of records witii each record identifying and describing die essential characteristics of one broadcast station or satellite feed.
  • a field is used to specify where, if anywhere, the station's schedule information is obtained. If the station is not currently edited, die value in this field is set to zero; if the schedule information is being provided using a different Station ID (in other words, this station is a repeater), then this field will contain the ID of the other station; if the station is handled normally (schedule is edited and data is provided under this ID), diis field is left empty.
  • the Station List is required to contain an entry corresponding to every station or feed for which the vendor supplies data to StarSight, regardless of whetiier that feed is present in any Lineup supplied by die vendor to StarSight. This is because
  • StarSight sometimes identifies a need for data for a station, due to a show or test. In a case like this StarSight might internally generate a lineup containing this station, and just ask the vendor to supply die schedule information.
  • die Station List must contain an entry identifying each one of tiiese, an entry for each alias for any of these, and an entry for every feed which appears in any lineup supplied by die vendor to StarSight.
  • Other fields give die station Call Letters or satellite feed's name, the usual abbreviation for the name, effective date and expiration date (for dealing witii Call Letter changes).
  • Lineup List The Lineup List is made up of two types of records: RG Records
  • Each RG record explains the details about one RG, such as contact names, location, type of service, daylight saving time observed etc.
  • Lineup Records Each Lineup record describes one of the channels received by die RG. The union of all the currently-effective records describing channels in a given RG comprises the Lineup for that RG. There may also be records which are not currently effective, either because the date they become effective is in the future, or because the date on which they ceased to be effective is in the past. Each record contains sufficient information to unambiguously identify die RG and channel it applies to, and (along with knowledge of die current date) to determine whetiier or not it is currently effective. It also contains information which allows the construction of composite channels.
  • the Lineup List can be updated incrementally by transmitting a Lineup List Update, consisting of only the Lineups for RGs that have been modified since die last time the full Lineup List was transmitted. Note that any time a given RG's Lineup is updated, it must be updated in full; that is: a Lineup List Update may update only some of the RGs, but any RG which has its updated must be updated by transmitting all the lineup information for that RG. Probable usage would be for the full Lineup List to be transmitted weekly, and a Lineup List Update, transmitted daily.
  • Filenames for the Station and Lineup lists shall be assigned as follows: Base name of each file shall consist of six characters signifying year, month and day; basename shall be separated from a suffix by a period, and die suffix shall denote which type of file, according to Table LV below: Basename. Suffix Type of File Examples yymmdd.STD Station List Daily file 940130.STD yymmdd.LUW Lineup Weekly file 940519.LUW yymmdd.LUD Lineup List Update 941121.LUD yymmdd.TRD TVRO Lineup File 931225.TRD
  • composite channels The issue of composite channels is handled tiirough the Lineup. If a single tunable channel routinely airs programming from more than one programming source, it is then known as a composite channel. (Example: A cable channel #41 might show VH1 for part of the day and HBO for another part of the day, etc.)
  • the Lineup will deal widi diis by assigning each of die feeds tiiat go into die composite to die same "tone" channel. The start and stop times can then be used to determine what data to compile for that composite.
  • Each record in the Station List file is comprised of the fields defined in Table LVI. Each field is delimited from the next with an ASCII "pipe" (7C hex) character. Fields witii a specified default size of 0 may be left empty if no data is available; fields with a nonzero minimum size are mandatory. Note: to inform StarSight that an entry of the Station List is being deleted, a Station List record is transmitted containing data in the the "Station ID" and "Last Modified Date/Time" fields, with all other fields empty. This signals StarSight to stop doing the internal processing associated with this Station. Station List Record Format Field # Field Name Field Size Description
  • Transponder Channel 7.
  • Affiliation 20 Network affiliation, if any.
  • Unique ID number assigned by vendor This ID is used to identify die station or feed wherever this is required.
  • Station Type empty, or 1 byte, numeric
  • this field would contain just a number.
  • Type of Satellite C or Ku
  • satellite usually a letter and a number, like G5
  • transponder a number
  • This field should contain data if the "Station Type” field contains 0, 1, or 2; it may be empty if "Station Type” is 3, 4, or 5.
  • Super Stations such as WTBS, WGN and WWOR deserve special consideration. In their home markets, these stations are just normal broadcast stations with normal broadcast Native channel numbers; but when received from satellite, the Native channel number must refer to a satellite and transponder. This is to be handled by using two separate Station IDs to refer to the two distinct usages of tiiese stations. If the schedule information is the same for both, this can be indicated by having one record give the other "Station ID" in the "Schedule Data Source” field. 7. Affiliation (up to 20 characters)
  • the Lineup database will contain one record for each currently -effective channel in each RG, and may also contain a futore lineup for each RG.
  • a "channel" is any seperately -scheduled feed. Composite channels are described using a separate record for each part of the composite.
  • RG record is transmitted, except tiiat it contains a 0 in the "Lineup Record Count” field, as well as a specific Date/Time for expiration, in the "Expiration Date/Time” field; all otiier fields should be formatted as per this specification. This signals StarSight to stop doing die internal processing associated witii this RG, as of the specified Date/Time. Note: due to die delay inherent in processing this type information, it is not a good idea to reuse this RG number to identify a new RG. To assure no problems of this natore, RG numbers should not be reused at all. 3. A lineup must always be described in its entirety, with an RG record immediately followed by all die Lineup records associated witii this RG. 4.
  • the current information is transmitted first, with an RG record having the earlier of the two effective dates, followed by all die current lineup records; then another RG record having an effective date in the futore followed by all die lineup records for the futore lineup.
  • Lineup information is to be sorted in ascending order on die following key values: a. RG number b. Effective Date c. Source d. Tune Channel .
  • Last Date/Time Modified field in the RG record; an update of the "Lineup Info Last Date/Time Modified” field implies that the entire Lineup for that RG has been updated and verified.
  • RG number 8 8 (The 8 digit I.D. number of this RG)
  • Satellite Name Reception Group (if cable, name of headend)
  • Cable System name / 0 120 (if cable, name of
  • tiiat The decimal number of Lineup records tiiat follow this record; tiiat is: the number of following records used to completely define die Lineup of diis RG.
  • RG number is the unique 8 decimal digit ID of diis RG.
  • RG numbers must not be re-assigned: once an RG number has been assigned, it may eventually pass out of usage (say, because a company goes out of business); but even in this case, its RG Number should not be reused. 4.
  • RG group type (1 byte)
  • RG Name should uniquely identify an entity that can have its own lineup. For example, each headend of a cable system can have its own lineup, so each headend should have a name which is somehow unique, even if it is only a unique number, or a unique combination of die Cable System Name with a number.
  • this may be a system operated by a Multiple System Operator (MSO). If so, name the MSO. If satellite, name the operator of the satellite.
  • MSO Multiple System Operator

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Television Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Selective Calling Equipment (AREA)
EP95921225A 1994-05-04 1995-04-24 Fernsehprogramminformationsübertragungs- und -benutzungssystem und -methode Withdrawn EP0761061A4 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US239225 1994-05-04
US08/239,225 US5790198A (en) 1990-09-10 1994-05-04 Television schedule information transmission and utilization system and process
US243598 1994-05-13
US08/243,598 US5619274A (en) 1990-09-10 1994-05-13 Television schedule information transmission and utilization system and process
PCT/US1995/005169 WO1995031069A1 (en) 1994-05-04 1995-04-24 Television schedule information transmission and utilization system and process

Publications (2)

Publication Number Publication Date
EP0761061A1 EP0761061A1 (de) 1997-03-12
EP0761061A4 true EP0761061A4 (de) 2000-01-12

Family

ID=56289624

Family Applications (1)

Application Number Title Priority Date Filing Date
EP95921225A Withdrawn EP0761061A4 (de) 1994-05-04 1995-04-24 Fernsehprogramminformationsübertragungs- und -benutzungssystem und -methode

Country Status (5)

Country Link
EP (1) EP0761061A4 (de)
KR (1) KR100485279B1 (de)
CN (1) CN1153461C (de)
AU (1) AU694521B2 (de)
CA (1) CA2189454C (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6424998B2 (en) 1999-04-28 2002-07-23 World Theatre, Inc. System permitting the display of video or still image content on selected displays of an electronic display network according to customer dictates
US6677961B1 (en) * 1999-09-24 2004-01-13 Lg Electronics, Inc. Method and apparatus for identifying a predetermined number of representative data pieces from within a selected data segment
JP3594187B2 (ja) * 2001-05-16 2004-11-24 ソニー株式会社 情報処理装置および方法、情報提供装置および方法、記録媒体、並びにプログラム
KR101528841B1 (ko) * 2008-11-21 2015-06-16 삼성전자주식회사 무선통신 시스템에서 방송 채널 검색 방법 및 장치
KR101727044B1 (ko) 2010-01-26 2017-04-14 엘지전자 주식회사 Tv 화이트스페이스 내에서 스테이션의 동작 방법 및 이를 위한 장치
US10049228B2 (en) 2015-01-20 2018-08-14 Microsoft Technology Licensing, Llc File encryption support for FAT file systems
CN110620701B (zh) * 2019-09-12 2024-03-08 北京百度网讯科技有限公司 数据流监控处理方法、装置、设备及存储介质
CN113155464B (zh) * 2021-03-31 2022-03-18 燕山大学 面向轴承故障识别的cnn模型可视化优化方法
CN114050987B (zh) * 2021-11-03 2023-08-22 猫岐智能科技(上海)有限公司 物联网设备无接触调试系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151782A (en) * 1989-05-17 1992-09-29 Reiss Media Enterprises Control system for satellite delivered pay-per-view television system
WO1993022877A2 (en) * 1992-05-01 1993-11-11 Ictv Inc. Interactive home information system
WO1993023957A1 (en) * 1992-05-13 1993-11-25 Mankovitz Roy J Apparatus and methods for automatic control and monitoring of the operation of consumer electronic products
US5283639A (en) * 1989-10-23 1994-02-01 Esch Arthur G Multiple media delivery network method and apparatus

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2840755B2 (ja) * 1989-04-27 1998-12-24 ソニー株式会社 プログラム送出装置
US5200823A (en) * 1991-03-29 1993-04-06 Scientific-Atlanta, Inc. Virtual channels for a multiplexed analog component (mac) television system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151782A (en) * 1989-05-17 1992-09-29 Reiss Media Enterprises Control system for satellite delivered pay-per-view television system
US5283639A (en) * 1989-10-23 1994-02-01 Esch Arthur G Multiple media delivery network method and apparatus
WO1993022877A2 (en) * 1992-05-01 1993-11-11 Ictv Inc. Interactive home information system
WO1993023957A1 (en) * 1992-05-13 1993-11-25 Mankovitz Roy J Apparatus and methods for automatic control and monitoring of the operation of consumer electronic products

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of WO9531069A1 *

Also Published As

Publication number Publication date
CA2189454C (en) 2004-11-02
KR100485279B1 (ko) 2005-09-08
AU694521B2 (en) 1998-07-23
CN1152987A (zh) 1997-06-25
CA2189454A1 (en) 1995-11-16
KR970703082A (ko) 1997-06-10
CN1153461C (zh) 2004-06-09
EP0761061A1 (de) 1997-03-12
AU2635595A (en) 1995-11-29

Similar Documents

Publication Publication Date Title
US5619274A (en) Television schedule information transmission and utilization system and process
US5790198A (en) Television schedule information transmission and utilization system and process
US7210159B2 (en) System and method for transmitting and utilizing electronic programs guide information
WO1995031069A1 (en) Television schedule information transmission and utilization system and process
US9521462B2 (en) Premium channel promotion system and method
US8955017B2 (en) Channels and services display
US5473609A (en) Method and apparatus for processing a conditional access program guide as for a satellite TV service
US20150156553A1 (en) Schedule system with enhanced recording capability
CA2189454C (en) Television schedule information transmission and utilization system and process
WO1998026594A1 (en) Television system with scrambling detection capability
JP2011120310A (ja) テレビスケジュール情報送信及び利用システム並びに方法
EP0921681B2 (de) Verfahren und Vorrichtung zur Verwaltung von Dienstinformationen in einem Digitalfernsehsystem
MXPA96005827A (en) Method and apparatus for processing a conditional access program guide regarding a satellite television service

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19961204

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LI LU MC NL PT SE

RBV Designated contracting states (corrected)

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LI LU MC NL PT SE

RIN1 Information on inventor provided before grant (corrected)

Inventor name: ALEGIANI, GIAMBATTISTA, A.

Inventor name: SOKOLIK, KONSTANTINE

Inventor name: WARDEN, DAVID, P.

Inventor name: KOCHY, JEFFREY, J.

Inventor name: EBRIGHT, ALAN, R.

Inventor name: ROOP, JOHN, H.

A4 Supplementary search report drawn up and despatched

Effective date: 19991125

AK Designated contracting states

Kind code of ref document: A4

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LI LU MC NL PT SE

17Q First examination report despatched

Effective date: 20050627

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20051102