US20160353153A1 - Remote control programming system - Google Patents

Remote control programming system Download PDF

Info

Publication number
US20160353153A1
US20160353153A1 US15/231,548 US201615231548A US2016353153A1 US 20160353153 A1 US20160353153 A1 US 20160353153A1 US 201615231548 A US201615231548 A US 201615231548A US 2016353153 A1 US2016353153 A1 US 2016353153A1
Authority
US
United States
Prior art keywords
remote control
control
user interface
electronic device
codes
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.)
Abandoned
Application number
US15/231,548
Inventor
Craig Seidel
David E. Bruce
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 Media Solutions Inc
Original Assignee
Tivo Solutions 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
Application filed by Tivo Solutions Inc filed Critical Tivo Solutions Inc
Priority to US15/231,548 priority Critical patent/US20160353153A1/en
Publication of US20160353153A1 publication Critical patent/US20160353153A1/en
Assigned to MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT reassignment MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TIVO SOLUTIONS INC.
Assigned to TIVO SOLUTIONS INC. reassignment TIVO SOLUTIONS INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: TIVO INC.
Assigned to TIVO SOLUTIONS INC. reassignment TIVO SOLUTIONS INC. RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Assignors: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • H04N21/42226Reprogrammable remote control devices
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C23/00Non-electrical signal transmission systems, e.g. optical systems
    • G08C23/04Non-electrical signal transmission systems, e.g. optical systems using light waves, e.g. infrared
    • 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/005Reproducing at a different information rate from the information rate of 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
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • 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/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/252Processing of multiple end-users' preferences to derive collaborative data
    • 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/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2543Billing, e.g. for subscription services
    • H04N21/2547Third Party Billing, e.g. billing of advertiser
    • 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4147PVR [Personal Video Recorder]
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • H04N21/42226Reprogrammable remote control devices
    • H04N21/42227Reprogrammable remote control devices the keys being reprogrammable, e.g. soft keys
    • H04N21/42228Reprogrammable remote control devices the keys being reprogrammable, e.g. soft keys the reprogrammable keys being displayed on a display screen in order to reduce the number of keys on the remote control device itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • 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/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • 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/454Content or additional data filtering, e.g. blocking advertisements
    • 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/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4662Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
    • H04N21/4663Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms involving probabilistic networks, e.g. Bayesian networks
    • 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/482End-user interface for program selection
    • H04N21/4825End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
    • 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/482End-user interface for program selection
    • H04N21/4826End-user interface for program selection using recommendation lists, e.g. of programs or channels sorted out according to their score
    • 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/482End-user interface for program selection
    • H04N21/4828End-user interface for program selection for searching program descriptors
    • 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/485End-user interface for client configuration
    • 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
    • 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/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • 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/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • H04N21/8153Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics comprising still images, e.g. texture, background image
    • 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
    • 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/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • 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/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/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17345Control of the passage of the selected programme
    • H04N7/17354Control of the passage of the selected programme in an intermediate station common to a plurality of user terminals
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C2201/00Transmission systems of control signals via wireless link
    • G08C2201/20Binding and programming of remote control devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • 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 
    • H04N2005/4435
    • 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/781Television signal recording using magnetic recording on disks or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/907Television signal recording using static stores, e.g. storage tubes or semiconductor memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction

Definitions

  • This invention relates to programming a remote control.
  • VCRs videocassette recorders
  • Remote controls typically use infra-red (IR) signals to communicate with devices that they operate. Each IR signal may be described using an IR code.
  • Remote controls that communicate with IR signals typically use an embedded microprocessor and an embedded non-volatile memory chip to store control tables that specify the IR signaling required for communication with the device that the remote control operates.
  • Remote controls are generally compatible only with a set of devices for which the remote control stores data in the control tables. In other words, a remote control for a TV of brand A will likely not work with a receiver of brand B. Sometimes, even among products of a specific brand, remote controls will not be compatible for a variety of reasons, including (a) different control methods, such as radio frequency (RF) and Infrared (IR), may be used, (b) different signaling protocols, such as variations on pulse width and pulse position, may be used, and (c) different button encodings may be used.
  • RF radio frequency
  • IR Infrared
  • a universal remote control is a remote control that will, within limitations, emulate a wide variety of other remote controls, allowing a user to replace a collection of remote controls with a single remote control.
  • Universal remote controls are designed to generate a variety of signals to support the broadest range of devices.
  • a pre-programmed universal remote control is configured to emulate a fixed number of remote controls.
  • Each brand of device may assign a remote control with a particular code (referred to herein as a “mode code”) that describes how to specify any operation by that remote control.
  • a particular mode code specifies a set of IR signals (or a set of IR codes) that the remote control supports.
  • a user To use a pre-programmed universal remote control, a user must configure the pre-programmed universal remote control by indicating which remote control to emulate by entering in the specific mode code (which can be, for example, a four digit numeric code, e.g., “1234”) that is assigned to the particular remote control that the user wishes the pre-programmed universal remote control to emulate.
  • the specific mode code which can be, for example, a four digit numeric code, e.g., “1234”
  • the user must determine which mode code that is supported by the pre-programmed universal remote control in a process that usually involves trial-and-error.
  • the user enters in a set of numbers into the pre-programmed universal remote control to indicate a possible mode code, and thereafter, the user presses a button (e.g., power) to see if the mode code works, i.e., a mode code works if the pre-programmed universal remote control performs the desired action on the intended device using the set of IR codes associated with the mode code. If the selected mode code does not work, the user must try another mode code. This is a time consuming process that is subject to error and may be frustrating to the user.
  • a learning universal remote control may be programmed to emulate another remote control, generally by programming one operation at a time.
  • a learning universal remote control may capture and copy the IR codes produced by another remote control issuing a command.
  • a user typically configures a learning universal remote control by (a) facing the learning universal remote control towards another remote control, (b) entering a sequence of buttons on the learning universal remote control to initiate the copying of a particular command, and (c) pressing a button on the other remote to generate an IR signal carrying the IR code which is captured by the learning universal remote control.
  • the learning universal remote control can thereafter generate that IR code (or something similar) to perform the same operation on the same device as the other remote control.
  • programming a learning universal remote control may be a complicated and time-consuming process.
  • An additional type of remote control may be programmed via a computer link.
  • a programmable universal remote control may connect to a computer through an interface, such as a USB port, to download information instructing the programmable universal remote control on how to emulate a particular remote control.
  • Programming a programmable universal remote control undesirably requires an appropriate interface to connect with a computer configured to instruct the programmable universal remote control, which may not always be available. Further, users may find programming a programmable universal remote control to be a confusing, frustrating, and time-consuming process.
  • FIG. 1 depicts a system controlling a set-top box according to an embodiment of the invention
  • FIG. 2 depicts a system block diagram according to an embodiment of the invention
  • FIG. 3 depicts a data flow regarding IR control of an external set-top box according to an embodiment of the invention
  • FIG. 4 is a block diagram of a system according to an embodiment of the invention.
  • FIG. 5 depicts a remote control according to an embodiment of the invention.
  • FIG. 6 is a flowchart illustrating the functional steps of an embodiment of the invention.
  • Embodiments of the invention provide for programming a remote control in an easy and intuitive manner.
  • Embodiments of the invention allow a user to configure a first remote control (referred to herein as a target remote control) to emulate the functionality of a second remote control (referred to herein as the source remote control).
  • a target remote control referred to herein as a target remote control
  • the source remote control For example, users may use embodiments of the invention to configure a target remote control to emulate the functionality of a plurality of source remote controls, i.e., a single target remote control may be configured to emulate the functionality of more than one source remote control.
  • the mode code of a source remote control is identified and thereafter communicated to the target remote control.
  • the mode code of the source remote control may be identified, as explained in further detail below, by analyzing the IR codes contained within received signals transmitted from the source remote control.
  • a computing device stores control data that identifies one or more mode codes.
  • Each of the one or more mode codes identifies a set of signals (or IR codes) used by a type of remote control to control a type of device.
  • the computing device also stores data about the set of IR codes associated with each mode code.
  • the computing device may be implemented using a Digital Video Recorder (DVR) from TiVo, Inc.
  • the DVR stores control data that identifies how to program a variety of remote controls.
  • the computing device is coupled to a detector that is capable of exchanging signals with a remote control, e.g., the DVR contains IR control 620 , described in further detail below.
  • the computing device may display instructions and/or assistance on a display, such as a television, to walk the user through all parts and aspects of the process.
  • a user presses a button on the source remote control to cause a signal, such as an IR signal containing an IR code, to be transmitted from the source remote control to be received by the computing device.
  • the computing device analyzes the received signal to determine operation data that identifies an operation indicated by the signal.
  • the operation data may contain an IR code. For example, if the user pressed the button to increase the volume, then the operation data contained within the signal would indicate the IR code associated with the operation to increase the volume on the device being controlled by the source remote control.
  • the computing device consults the control data store to determine, based at least in part on the operation data, a particular mode code that is associated with the source remote control.
  • the particular mode code identifies the set of signals used by the source remote control to control a particular device.
  • the computing device may determine that the source remote control is model XYZ because the IR code contained in the operation data received in the signal matches model XYZ.
  • the computing device may use the IR codes contained within the operation data to determine the mode code of the source remote control.
  • the particular mode code may be used to program the target remote control using a variety of methods.
  • the computing device may display a user interface on a display, such as a television, that visibly presents the particular mode code to the user. The user may thereafter manually program the target remote control with the particular mode code.
  • the computing device may transmit the particular mode code to the target remote control. Once the particular mode code is received by the target remote control, the target remote control may configure itself using the particular mode code without user intervention.
  • the computing device may allow a user to select a particular brand of a device by the target remote control on a user interface. Once the computing device receives data that indicates the user's selection, the computing device may eliminate possible modes codes based on the selected brand. Additionally, the computing device may suggest to the user certain operations to perform or keys to press on the source remote control to help distinguish the mode code of the source remote control between possible mode code candidates based on the IR code produced by the source remote control.
  • FIG. 1 depicts a system 100 including set-top control unit 110 controlling an external set-top box 200 in accordance with certain embodiments.
  • Certain embodiments are implemented as an advanced set-top unit 110 packaged in a shipping container with cables, accessories, and a remote control 120 . Certain further embodiments provide control of cable and satellite set-top boxes 200 by IR control 114 . Certain embodiments support some satellite boxes 200 by serial control 114 .
  • remote control unit 120 may be a TiVo Remote Control Unit, available from TiVo Incorporated, of Alviso, Calif.
  • the television source 202 can be from a variety of sources, including: 1) a roof-top antenna or rabbit ears receiving terrestrial analog broadcast, 2) a buried coaxial cable delivering analog and digital cable signals, 3) a satellite antenna receiver digital satellite broadcast, and 4) a roof-top antenna receiving terrestrial digital broadcast.
  • the signal source 202 is from a roof-top or rabbit ear antenna
  • a user connects the cable from the antenna directly to the RF input on the Set-top control unit.
  • the internal tuner in the Set-top control unit set-top box is used to select which program to view or record. The viewer selects which channel to tune to by using the remote control unit 120 . After the selection is made, the Set-top control unit tunes its internal tuner to receive the channel selected.
  • the user can choose to: 1) connect the cable to an analog set-top box, 2) connect the cable to a digital set-top box, or 3) connect the cable directly to the Set-top control unit.
  • the cable may be fiber optic. In certain other embodiments, the cable may be coaxial cable.
  • the cable is connected to the cable set-top box.
  • the cable may be fiber optic. In certain other embodiments, the cable may be coaxial cable.
  • the cable set-top box contains an internal tuner that will be tuned to the channel the viewer wishes to view or record.
  • the cable set-top box 200 is then connected 118 to the Set-top control unit 110 in one of two ways:
  • the viewer selects which channel to tune to by using the Remote Control Unit 120 .
  • the set-top control unit 110 transmits an IR signal 114 to the Cable set-top box 200 and the Cable set-top box 200 tunes its internal tuner to the channel.
  • the channel is passed to the set-top control unit 110 by either the RF, composite, or S-Video outputs.
  • the set-top control unit 110 must be configured to receive the channel from its RF, composite, or S-Video inputs. If the RF input is selected, the Set-top control unit 110 must also tune its internal tuner 640 (see FIG. 2 ) to either channel 3 or 4, depending upon which channel the cable box 200 is configured to receive the signal.
  • the cable 118 is connected to the digital cable set-top box 200 .
  • the cable may be fiber optic. In certain other embodiments, the cable may be coaxial cable.
  • the digital cable set-top box 200 contains an internal tuner that will be tuned to the channel the viewer wishes to view or record.
  • the cable set-top box 200 connects 118 to the set-top control unit 110 in one of two ways:
  • the viewer selects which channel to tune to by using the TiVo Remote Control Unit 120 .
  • the Set-top control unit 110 transmits 114 an IR signal to the digital cable set-top box 200 and the digital cable set-top box 200 tunes its internal tuner to the channel.
  • the channel is passed 118 to the TiVo set-top unit 110 by either the RF, composite, or S-Video outputs.
  • the TiVo set-top unit 110 must be configured to receive 118 the channel from its RF, composite, or s-video inputs. If the RF input is selected, the Set-top control unit 110 must also tune its internal tuner 640 (see FIG. 2 ) to either channel 3 or 4, depending on which channel the digital cable box 200 is configured to receive the signal.
  • the satellite receiver digital set-top box 200 is connected 118 to the Set-top control unit 110 in an identical fashion as described above for a digital cable set-top box 200 .
  • the preferred connection for a satellite receiver is using the S-Video connectors in certain embodiments for the highest quality connection. Such connection also leaves the RF input connection on the Set-top control unit 110 free to attach a cable or roof-top antenna to receive local channels.
  • serial output port 508 (see FIG. 2 ) on the Set-top control unit 110 can be connected 114 to the serial data port on the satellite receiver.
  • the signal source 202 is from a digital terrestrial antenna and the digital terrestrial set-top box 200 provides an option to output standard NTSC compatible video on either RF, composite, or S-Video outputs. Then one of these outputs can be connected 118 to the corresponding input on the Set-top control unit 110 .
  • the digital terrestrial set-top box 200 is connected 118 to the Set-top control unit 110 in an identical fashion as described above for a digital cable set-top box 200 .
  • the connection 118 using S-Video provides the highest quality connection in certain embodiments.
  • Certain embodiments provide server based services through modem access 116 . Certain further embodiments provide server based services which include TiVo Services through modem access 116 or network access.
  • Certain further embodiments support at least some of the following features: Records television programming in digital form on at least one internal hard disk drive. Certain further embodiments support 10 hours of recorded programming and certain other further embodiments support 30 or more hours of programming. Certain embodiments support digital recording of audio-video content including random access to titled programming. Certain further embodiments support digitally accurate fast forward, rewind, slow motion, frame forward, frame back and high-quality freeze frame. Certain embodiments provide a 30 minute buffer of live programming being viewed enabling the viewer to pause, rewind and fast forward live TV.
  • Certain embodiments provide instant replay of live or recorded sporting events and educational programs. Certain embodiments provide programmable scheduling by time and channel, just like a VCR. Certain embodiments allow viewers to save recorded programs to their VCRs. Certain embodiments provide selectable recording quality.
  • Certain embodiments provide a RF input 644 with tuner 640 , which is compatible with cable and terrestrial broadcast TV (see FIG. 2 ). Certain embodiments provide selectable RF input on channel 3, RF input on channel 4, composite, S-Video input, or digital input support for analog cable, digital cable, or satellite set-top devices.
  • a set-top control unit 110 is portable; electronics of the set-top control unit 110 are housed in a metal enclosure approximately 17 inch wide, 13 inches deep and 4 inches high.
  • connection 132 feeds signals from a composite video output 550 (see FIG. 2 ) of set-top control unit 110 .
  • connection 132 feeds signals from an S-video output 548 (see FIG. 2 ) of set-top control unit 110 .
  • signals can be digital in addition to, or instead of, analog.
  • FIG. 2 depicts a system block diagram set-top control unit 110 in accordance with certain embodiments.
  • This particular embodiment represents a relatively low level of integration.
  • a particular alternative embodiment incorporates elements of the Processor Subsystem 500 , IR Controller 620 and Media Switch 560 into a single integrated circuit.
  • the electronics of set-top control unit 110 consists of a main System Board 400 , an IR Controller Board (IR Ctrl) 572 , a mass storage system 578 , a Fan, and a Power Supply.
  • Set-top control unit 110 supports one left-right stereo pair audio input 532 - 534 , one composite video input 522 , one S-Video input 524 , one RF input 644 and one RF output 642 modulated onto either channel 3 or 4.
  • digital interfaces such as S/PDIF, Toslink, DVI, and HDMI are supported.
  • Mass storage system 578 may include any number and type of disk drives in certain embodiments. In certain embodiments, mass storage system 578 may be implemented using Flash memory.
  • the set-top control unit 110 provides at least one left-right stereo pair audio outputs 544 - 546 , at least one composite video output 550 , at least one S-Video output 548 , at least one serial input/output 508 , at least one IR blaster output 622 , at least one IR input 622 , and at least one modem input/output 510 which may be connected 116 to an associated phone line in certain embodiments.
  • IR control 572 is shown as a single entity in FIG. 2 ; however, IR control 572 may be implemented in other embodiments using a first component responsible for IR transmission, and a second component responsible for IR reception.
  • IR control 572 may be implemented by any functional component (or set of components) that are capable of sending and receiving an input signal (IR, RF, or any other type of signal), and is not limited to infra-red input signals, but rather any type of input signal, including, but not limited to, sound and any portion of the electro-magnetic spectrum.
  • IR control 572 may be implemented by a functional component that is capable of receiving an analog signal and converting the analog signal into a digital form for processing.
  • the IR control 572 may be implemented using any combination of hardware and software.
  • the disk drive(s) in mass storage system 600 are connected by a cable 564 to the System Board 400 .
  • the Fan is connected to the System Board 400 with a cable 562 .
  • the Power Supply is connected to the System Board 400 and mass storage system 600 with power cables.
  • the system board 400 can be generally divided into: 1) subsystems that convert analog video and audio from analog to digital data; 2) subsystems that process digital audio and video data; and 3) subsystems that convert digital data back to analog.
  • digital data is converted to other digital formats such as HDMI.
  • the Tuner subsystem 810 and video and audio input subsystem 570 accept as input standard analog video and audio signals from set-top boxes, roof-top antennas, or rabbit ear antennas.
  • the video and audio input subsystem 570 converts these signals into digital media streams.
  • the digital media streams 536 and 502 are processed and stored in the mass storage system 578 by Media Switch 560 and Processor Subsystems 500 .
  • Media streams 542 selected by the user to view are retrieved 564 from the mass storage system 578 by the Media Switch 560 and Processor Subsystem 500 .
  • Retrieved media stream 542 is converted from digital to analog by the Video and Audio Output Subsystem 540 .
  • Media Switch 560 and Processor Subsystem 500 also perform miscellaneous house keeping functions such as temperature monitoring and fan control 562 .
  • the Security Microprocessor 580 performs system identification and authentication for security purposes.
  • the System Board partitions into CPU, Input, and Output Subsystems. Each subsystem will be discussed in more detail below.
  • the Processor subsystem 500 includes the following in certain embodiments.
  • the CPU is an IBM Power PC.
  • the boot ROM is a 1 mega-bit Flash.
  • the main memory is 4 meg ⁇ 32-bit, implemented using two 4096k ⁇ 16-bit EDO RAMs.
  • the serial port is multiplexed to interface to the IR Controller Board and the Security Microprocessor.
  • a second serial UART implements the external serial port that controls DSS Receivers.
  • the modem is implemented with a Rockwell chipset and has an attached 1 mega-bit Flash that contains its microcode.
  • the Media Switch ASIC controls multimedia streams to and from the disk drive. It also implements a number of system functions including the IDE disk drive controller, fan control and i2C bus control.
  • the CPU Subsystem has a battery backed-up real-time clock and a temperature sensor interfaced to the i2C bus.
  • the I2C bus is also used to control 502 Video and Audio Input system 570 and to control 506 Video and Audio Output Subsystem 540 .
  • the Video and Audio Input Subsystem 570 inputs video and audio from I/O connectors, converts it from analog to digital and encodes it using MPEG2 compression. Channel selection is performed with a tuner 810 when the RF input is selected. The video and audio are converted from analog to digital and then passed to a compression engine. In certain embodiments, only one video/audio source can be selected at a time to be processed by the compression engine.
  • the video compression is performed with an MPEG encoder chip set in certain embodiments.
  • an MPEG encoder chip set coupled with RAM memories performs video compression.
  • the MPEG encoder chip set is composed of exactly one integrated circuit.
  • a Sony MPEG2 encoder chip performs video compression in certain further embodiments.
  • a DSP is used in certain embodiments to perform audio compression.
  • a DSP from Analog Devices is used to perform audio compression.
  • the Video and Audio Output Subsystem 540 decompresses video and audio cached on mass storage system 578 , converts it back into analog signals, and drives the output connectors.
  • Certain embodiments of set-top control unit 110 support at least one stereo pair of audio output, at least one composite video output, at least one S-Video output and at least one RF output modulated onto either channels 3 or 4.
  • Certain further embodiments of set-top control unit 110 support at least two stereo pair of audio output and at least two composite video outputs.
  • the compressed video/audio stream 542 is transferred to an MPEG2 decoder chip set for decoding in certain embodiments.
  • the MPEG decoder chip set is coupled to RAM memory.
  • the compressed video/audio stream 542 is transferred to an IBM MPEG2 decoder chip with coupled RAM memory for decoding in certain further embodiments.
  • the uncompressed digital video, output by the MPEG decoder chip set, is sent to a video encoder to convert the video back into analog form before driving the video output connectors in certain embodiments.
  • a Phillips video encoder chip performs the conversion. Audio is mixed with user interface sound effects before driving the audio output connectors in certain embodiments. Audio is converted from digital into analog and then mixed with user interface sound effects before driving the audio output connectors in certain further embodiments.
  • the IR Controller Board 572 contains an IR Microcontroller, an IR Photo receiver module, and LED's indicators.
  • IR controller board 572 is connected 514 to the System Board with a ribbon cable that connects the IR Microcontroller to the Power PC using the Power PC's serial port in certain embodiments.
  • the IR receive and transmit control functions are incorporated into the same integrated circuit as the Processor Subsystem and are connected internally.
  • the IR photo receiver and LED indicators may be on a separate board than the integrated circuit, connected by a cable.
  • One of ordinary skill in the art shall appreciate that there are many ways to configure IR transmit and receive hardware.
  • Set-top control unit 110 mass storage system 578 supports any number of disk drives in certain embodiments.
  • the power for the disk drives is connected directly from the power supply.
  • the IDE interfaces of the drives are connected 564 to the System board with a flat ribbon cable.
  • IR control codes are stored in an IR control code database 1100 (see FIG. 3 ) residing on mass storage system 578 .
  • FIG. 3 depicts data flow regarding IR control of external set-top boxes in accordance with certain embodiments.
  • IR control database 1100 resides on the mass storage system 578 and contains at least one IR control entry.
  • a first IR control entry is accessed 1102 to IR control generator 1110 .
  • IR control generator 1110 processes the IR control entry and sends 1112 - 1122 it to be prepared 1130 for presentation 1132 to a serial device 1140 .
  • Serial device 1140 serially transmits this presented information as control signals to an external set-top box.
  • timing generation 1120 is performed before 1122 it is prepared 1130 for presentation 1132 to a serial device 1140 .
  • preparation 1130 includes processing similar to the “C” programming language function “sprintf”.
  • preparation 1130 includes multiplexing serial streams to be sent to serial device 1140 .
  • preparation 1130 includes queuing various multiplexed serial streams to be sent to serial device 1140 .
  • the serial device 1140 includes at least one IR controller. In certain further embodiments, the serial device 1140 further includes a second serial device physical transport layer, which may include either wireline or wireless transport mechanisms.
  • raw IR control library 1180 resides on the mass storage system 600 and contains at least one raw IR control entry.
  • a first raw IR control entry is accessed 1182 by a library parsing operation 1190 to create a processed first IR control entry.
  • the processed first IR control entry is communicated 1192 and received 1192 to create a received first IR control entry.
  • the received first IR control entry is inserted into IR control database 1100 as an IR control entry of the IR control database 1100 .
  • first raw IR control entry is accessed 1182 by a library parsing operation 1190 to create a processed first IR control entry syntactic specification.
  • the processed first IR control entry syntactic specification is communicated 1192 and received 1192 to create a received first IR control entry.
  • Syntactic specifications provide for the specification of many crucial forms of communication information in an IR control entry. This includes but is not limited to specification of how many digits are in a channel. This also includes but is not limited to specifying whether an enter or cancel key is used at the end of IR blasting sequence to delimit channels. This also includes but is not limited to specifying delays between transmission of digits or symbols. This also includes but is not limited to specifying prefix keys. Prefix keys are not digits, which may used to delimit switch settings in certain embodiments. Many set-top boxes have an A/B switch, often with channels on both A and B switch settings. Some set-top boxes supporting satellite reception further have a C-band switch setting. This also includes but is not limited to specifying postfix keys. Postfix keys are not digits which alter the interpretation of the preceding IR blasting sequence.
  • syntactic specification may be the entire IR control entry, or a part of the entry. This also includes but is not limited to syntactic specifying IR control entries further referencing other syntactic specifying IR control entries. This supports development of complex blasting codes to perform essentially macro operations.
  • the first raw IR control entry is accessed 1184 by raw data IR generator 1200 to create a raw IR control packet, which processes the raw IR control packet and sends 1202 - 1122 it to be prepared 1130 for presentation 1132 to a serial device 1140 .
  • Serial device 1140 serially transmits this presented information as control signals to an external set-top box.
  • timing generation 1120 is performed before 1122 it is prepared 1130 for presentation 1132 to a serial device 1140 .
  • preparation 1130 includes processing similar to the “C” programming language function “sprintf”.
  • preparation 1130 includes multiplexing serial streams to be sent to serial device 1140 .
  • preparation 1130 includes queuing various multiplexed serial streams to be sent to serial device 1140 .
  • a prototype IR control database 1150 resides on mass storage system 600 containing at least one prototype IR control entry.
  • a control code search 1160 accessing 1152 a first prototype IR control entry creates a first raw IR control entry for raw IR control library 1180 .
  • the first prototype IR control entry is accessed 1154 by timing interface 1160 to create a first IR control packet, which then follows the same data flow 1122 as has been previously described.
  • FIG. 4 is a block diagram of a system 4000 according to an embodiment of the invention.
  • System 4000 includes a computing device 4101 , a detector 4020 , a source remote control 4040 , a target remote control 4050 , and communications links 4060 and 4062 .
  • Computing device 4010 may be implemented using any computerized device that is capable of processing and storing control data.
  • computing device 4010 (in conjunction with detector 4020 ) performs the functional steps illustrated in FIG. 6 .
  • the functions performed by computing device 4010 are described in further detail below.
  • Detector 4020 is a functional component that receives signals from remote controls, sends signals to remote controls. Detector 4020 is operationally connected to computing device 4010 , and may exchange data with computing device 4010 . Detector 4020 may be implemented using any means that can exchange signals over communications links 4060 and 4062 with remote controls. Detector 4020 captures and decodes signals received from remote controls. Although many remote controls use radio frequency (RF) or infra-red (IR) transmitters, detector 4020 may communicate with remote controls using any transmission medium, including portions of the electromagnetic spectrum and sound.
  • RF radio frequency
  • IR infra-red
  • FIG. 4 The functional components of FIG. 4 are not intended to represent the only embodiments of the invention, as other embodiments may perform the functions described above in a single component, or multiple other components.
  • computing device 4010 includes a control data store 700 that may be implemented using any volatile or non-volatile memory capable of storing control data.
  • Control data described in further detail below, is used by certain embodiments to program target remote control unit 4050 .
  • Control data may be populated in control data store by a variety of means, e.g., it may be stored at time of manufacturer of computing device 4010 or may be loaded into control data store over a network connection (not shown).
  • Source remote control 4040 refers to any remote control whose functions are to be emulated in target remote control 4050 .
  • Target remote control 4050 refers to any remote control that is being configured to emulate the functionality, in whole or in part, of source remote control 4040 . While only one source remote control is depicted in FIG. 4 for ease of explanation, system 4000 may be employed to copy the functionality, in whole or in part, of any number of source remote controls 4040 to target remote control 4050 .
  • Communications link 4060 may be implemented by any medium or mechanism that provides for the exchange of data between detector 4020 and target remote control 4050 .
  • Communications link 4062 may be implemented by any medium or mechanism that provides for the exchange of data between detector 4020 and source remote control 4040 .
  • Examples of communications links 4060 and 4062 include, without limitation, IR signals, RF signals, sound, and any portion of the electromagnetic spectrum.
  • FIG. 5 depicts a hand held remote control 120 in accordance with an embodiment of the invention.
  • the remote control in FIG. 5 may be used as source remote control 4040 or target remote control 4050 .
  • the remote control of FIG. 5 is merely illustrative, as any remote control may be used as either source remote control 4040 and any universal remote control may be used as target remote control 4050 .
  • FIG. 6 is a flowchart illustrating the functional steps of an embodiment of the invention.
  • control data that identifies one or more mode codes is stored.
  • Control data may be stored in step 610 in control data store 700 .
  • Control data contains information about remote control signaling, e.g., the data store may contain information about a set of mode codes, and information about the set of IR codes associated with each mode code.
  • Control data is used to match input signals transmitted by a remote control device to known signals of remote controls.
  • control data store 700 stores information employed by embodiments to map one or more user button presses to a set of mode codes.
  • the control data store 700 may contain sets of all mode codes for a particular remote control, and the set of IR codes associated with each mode code.
  • Control data store 700 may contain information about each remote control such as carrier frequency, pulse descriptions, protocol and button identifiers.
  • Control data store 700 may also contain information that maps mode codes to a brand of the target devices controlled by the mode codes.
  • Control data store 700 may be organized for more efficient processing. For example, it may be presorted or include an index, such as an index on a brand of a device controlled by a remote control or an index on any detectable element of the remote control signal. Data stored in control data store 700 may be preprocessed (possibly including hand processing) to optimize the user interaction. Data stored in control data store 700 may also be compressed to store as much data in control data store as possible. After the performance of step 610 , processing proceeds to step 620 .
  • Step 620 an input signal is received.
  • Step 620 may be performed by a user directing a source remote control towards set-top unit 110 and pressing a button, e.g., pressing the number “3” on the source remote control.
  • RF radio frequency
  • IR Infrared
  • an input signal may be sent to set-top unit 110 by the source remote control using a variety of means, e.g., anywhere within electromagnetic spectrum, sound, or any other method of transmitting a signal.
  • the target remote control may also communicate using a variety of means, e.g., anywhere within electromagnetic spectrum, sound, or any other method of transmitting a signal.
  • the input signal received in step 620 may be transmitted using any method for transmitting a signal.
  • the input signal received in step 620 may contain an IR code.
  • step 630 a particular mode code that is associated with the source remote control being configured is determined.
  • set-top control unit 110 is configured to compare the received input signal received in step 620 to information stored in control data store 700 about which input signals match input signals from specific remote controls. Set-top control unit 110 determines which particular mode code, among the plurality of mode codes stored in control data store 700 , is associated with the source remote control.
  • step 630 may be performed by analyzing the particular IR code contained within the input signal received in step 620 to determine if the IR code is used by any mode codes identified in the control data stored in the control data store 700 . If the IR code is uniquely associated with a particular mode code, then that mode code is the mode code associated with the source remote control. If two or more mode codes may produce the IR code received in the input signal received in step 620 , then the computing device will attempt to distinguish between those candidate mode codes, as explained in further detail below, to determine which of the candidate mode codes is associated with the source remote control.
  • step 640 set-top control unit 110 displays the particular mode code determined in step 630 on a display, such as TV 130 .
  • the set-top control unit 110 may display instructions on the TV to instruct the user on how to program target remote control using the mode code.
  • the particular mode code determined in step 630 may be a short sequence of digits (e.g., 1, 2, 3, 4).
  • the target remote control is programmed to emulate the specific remote control functionality indicated by the mode code.
  • the target remote control emulates the functionality of the source remote control after the target remote control is configured with the particular mode code. Thereafter, the user may test the target remote control to see if the remote control is emulating the proper functionality, e.g., the user may try to turn the power on and off on the intended device or perform similar tests, and if the user is successful after performing each test, then the target remote control is emulating the functionality of the source remote control.
  • step 650 set-top control unit 110 transmits the particular mode code chosen in step 630 to the target remote control.
  • the target remote control may then configure itself using the received mode code. In this way, the user does not need to manually configure the target remote control.
  • the user may configure the target remote control with greater ease and efficiency over prior approaches.
  • the user may be presented information on TV 130 that clearly walks the user through the process of programming the target remote control.
  • the user has to press only a small number of buttons on source remote control 120 to properly configure target remote control 120 to operate the intended device, thereby reducing both the potential for frustration and the time required in configuring target remote control 120 .
  • control data store 700 is implemented on set-top control unit 110 .
  • other devices may perform the steps illustrated in FIG. 6 .
  • the control data store may also be implemented on a standalone device or integrated into another device, such as TV 130 .
  • Any functional component may be configured to perform the steps of FIG. 6 if (a) the component can store control data, and (b) the component can send and receive signals from a remote control. Consequently, as other embodiments of the invention may store control data other than the set-top control unit 110 , embodiments of the invention are not limited to any particular component performing a particular step illustrated in FIG. 6 .
  • set-top unit 110 may interact with the user to improve the accuracy, efficiency and/or simplicity of detecting the particular mode code.
  • set-top control unit 110 may assist the determination of step 630 by eliminating one or more mode codes from the set of candidate mode codes being considered based on the brand of the device that the user wishes to control.
  • set-top control unit 110 may display information on a display (such as TV 130 ) that instructs a user to select a brand of the device the user wishes to control with the target remote control.
  • set-top control unit 110 may display a list of brands on TV 130 , and the user may use the target remote control to select one of the brands.
  • set-top control unit 110 may display instructions on a display (such as TV 130 ) that instructs the user to press one or more buttons on the source remote control. Guiding the user to press one or more buttons in a sequence may be advantageous, as particular mode codes may be distinguished based on particular IR codes associated with the operation issued by pressing a button on the source remote control. In other words, by pressing one or a few buttons, the set-top control unit 110 may be able to distinguish a particular mode code from all other mode codes stored in the control data store 700 .
  • the set-top control unit 110 may instruct the user to start by pressing the number “3” on the source remote control to narrow down the possible options in performing step 630 , as the IR code associated with the “3” button may be unique for those set of mode codes. If set-top control unit 110 is unable to determine the particular mode code associated with the source remote control after a first iteration, then set-top control unit 110 may instruct the user to press another button that may further narrow the options or resolve to the correct mode code associated with the source remote control.
  • set-top control unit may transfer additional information, such as information describing a user interface to perform operations on the target remote control, to the target remote control.
  • set-top control unit 110 may transfer information to target remote control describing a user interface associated with source remote control in step 630 .
  • remote control may use the information to create a user interface displayed on target remote control to enable the user to use the target remote control to perform any operation associated with the source remote control.
  • such an embodiment would allow the target remote control to implement a customized user interface based on a particular mode code that the target remote control was configured to emulate.
  • target remote control may be configured to emulate a source remote control that controls any variety of devices.
  • the target remote control may control any device, not just a component in a home entertainment center.
  • the target remote control may operate kitchen appliances, computer equipment, an automobile, a garage door, etc.
  • IR code has been used herein to refer to data that describes a command that is transmitted from a remote to another entity, as that is a commonly used term in the art as most commands are transmitted using infra-red (IR) signals.
  • IR infra-red
  • any medium may be used to transport commands from a remote control, e.g., the medium may be within the electromagnetic spectrum, sound, or any other method for transmitting a signal.
  • IR code as used herein, is not limited to merely a code associated with an infra-red signal, but broadly encompasses any mechanism for identified a command that is transmitted from a remote control to another entity.
  • Embodiments of the invention may program learning universal remote controls.
  • a learning universal remote control may receive signals from set-top control unit 110 instructing the learning universal remote control to configure itself to emulate a specific remote control.
  • Set-top control unit 110 may present information on a display, such as TV 130 , that instructs the user on how to program the learning universal remote control using data stored in the set-top control unit 110 .
  • Set-top control unit 110 may instruct the user to position the target remote control in front of the IR control 620 , and the set-top control unit 110 may transmit one or more IR codes that are received by the target remote control. The received IR codes may be used by the target remote control to configure the target remote control.
  • Embodiments of the invention may program programmable universal remote controls.
  • the programmable universal remote control may communicate to set-top control unit 110 through an appropriate interface, such as an USB port, to receive mode codes to configure the programmable universal remote control.
  • An embodiment of the invention may, in addition to transmitting one or more mode codes to a programmable universal remote control, also transmit information describing a user interface used on the programmable universal remote control.
  • the set-top control unit 110 may provide information about a preconfigured user interface for use with a specific mode code.
  • the set-top control unit 110 may enable the user to configure his or her own user interface to operate any device he or she wishes, thus allowing the user to make full use of the programmable universal remote control, as it may control any device in a home entertainment center or a device outside of a entertainment center, such as multiple consumer electronics devices, motorized blinds and remotely dimmable lights.
  • the computing device 4101 may transmit one or more mode codes and/or data describing one or more user interfaces that enable one to submit one or more commands associated with a mode code to a programmable remote control, such as the PRONTO line remote controls manufactured by Phillips.

Abstract

A method and apparatus for programming a remote control is provided. Control data that identifies one or more mode codes is stored in a computing device that is operationally connected to a detector. A user presses a button on a source remote control to cause an input signal to be transmitted from the source remote control to be received by the detector. The detector decodes the input signal, and consults the control data to determine a particular IR code that is associated with the source remote control. The computing device may then display information identifying a particular mode code on a display to allow the user to manually program a target remote control with the particular mode code. Alternately, the computing device may transmit the particular mode code to the target remote control to allow the target remote control to automatically configure itself with the particular mode code.

Description

    CLAIM OF PRIORITY AND RELATED APPLICATION DATA
  • This application claims benefit under 35 U.S.C. §120 as a Continuation of application Ser. No. 14/338,335, filed on Jul. 22, 2014, which is a Continuation of application Ser. No. 12/639,960, filed on Dec. 16, 2009, which claims benefit as a Continuation of application Ser. No. 10/958,674, filed on Oct. 4, 2004, which claims benefit of U.S. Provisional Patent Appln. No. 60/508,769, filed on Oct. 2, 2003, the entire contents of the aforementioned are hereby incorporated by reference as if fully set forth herein, under 35 U.S.C. §120. The applicant(s) hereby rescind any disclaimer of claim scope in the parent application(s) or the prosecution history thereof and advise the USPTO that the claims in this application may be broader than any claim in the parent application(s).
  • This application is related to U.S. Pat. No. 7,484,234, titled “Method and Apparatus for Controlling at Least One Set-Top Box”, by Kurtis Heaton et al., filed on Apr. 24, 2000, the contents of which are herein incorporated by reference for all purposes as if originally set forth herein.
  • FIELD OF THE INVENTION
  • This invention relates to programming a remote control.
  • BACKGROUND
  • Originally, televisions possessed a simple user interface containing a channel selector, a volume control, and little else. Since the advent of videocassette recorders (VCRs), the user interface for controlling all the available options for displaying content on a television has increased in complexity.
  • Remote controls typically use infra-red (IR) signals to communicate with devices that they operate. Each IR signal may be described using an IR code. Remote controls that communicate with IR signals typically use an embedded microprocessor and an embedded non-volatile memory chip to store control tables that specify the IR signaling required for communication with the device that the remote control operates.
  • Remote controls are generally compatible only with a set of devices for which the remote control stores data in the control tables. In other words, a remote control for a TV of brand A will likely not work with a receiver of brand B. Sometimes, even among products of a specific brand, remote controls will not be compatible for a variety of reasons, including (a) different control methods, such as radio frequency (RF) and Infrared (IR), may be used, (b) different signaling protocols, such as variations on pulse width and pulse position, may be used, and (c) different button encodings may be used.
  • As many consumers wish to minimize the amount of remote controls needed to operate components in their entertainment center, universal remote controls have gained in popularity. A universal remote control is a remote control that will, within limitations, emulate a wide variety of other remote controls, allowing a user to replace a collection of remote controls with a single remote control. Universal remote controls are designed to generate a variety of signals to support the broadest range of devices.
  • There are several different varieties of universal remote controls. One type of universal remote control is a pre-programmed universal remote control. A pre-programmed universal remote control is configured to emulate a fixed number of remote controls. Each brand of device may assign a remote control with a particular code (referred to herein as a “mode code”) that describes how to specify any operation by that remote control. Thus, a particular mode code specifies a set of IR signals (or a set of IR codes) that the remote control supports. To use a pre-programmed universal remote control, a user must configure the pre-programmed universal remote control by indicating which remote control to emulate by entering in the specific mode code (which can be, for example, a four digit numeric code, e.g., “1234”) that is assigned to the particular remote control that the user wishes the pre-programmed universal remote control to emulate.
  • The user must determine which mode code that is supported by the pre-programmed universal remote control in a process that usually involves trial-and-error. The user enters in a set of numbers into the pre-programmed universal remote control to indicate a possible mode code, and thereafter, the user presses a button (e.g., power) to see if the mode code works, i.e., a mode code works if the pre-programmed universal remote control performs the desired action on the intended device using the set of IR codes associated with the mode code. If the selected mode code does not work, the user must try another mode code. This is a time consuming process that is subject to error and may be frustrating to the user.
  • Another type of remote control, referred to herein as a learning universal remote control, may be programmed to emulate another remote control, generally by programming one operation at a time. A learning universal remote control may capture and copy the IR codes produced by another remote control issuing a command. A user typically configures a learning universal remote control by (a) facing the learning universal remote control towards another remote control, (b) entering a sequence of buttons on the learning universal remote control to initiate the copying of a particular command, and (c) pressing a button on the other remote to generate an IR signal carrying the IR code which is captured by the learning universal remote control. The learning universal remote control can thereafter generate that IR code (or something similar) to perform the same operation on the same device as the other remote control. Undesirably, programming a learning universal remote control may be a complicated and time-consuming process.
  • An additional type of remote control, referred to herein as a programmable universal remote control, may be programmed via a computer link. A programmable universal remote control may connect to a computer through an interface, such as a USB port, to download information instructing the programmable universal remote control on how to emulate a particular remote control. Programming a programmable universal remote control undesirably requires an appropriate interface to connect with a computer configured to instruct the programmable universal remote control, which may not always be available. Further, users may find programming a programmable universal remote control to be a confusing, frustrating, and time-consuming process.
  • Consequently, a new approach for programming a universal remote control is needed that does not incur the disadvantages associated with the prior approaches. The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
  • FIG. 1 depicts a system controlling a set-top box according to an embodiment of the invention;
  • FIG. 2 depicts a system block diagram according to an embodiment of the invention;
  • FIG. 3 depicts a data flow regarding IR control of an external set-top box according to an embodiment of the invention;
  • FIG. 4 is a block diagram of a system according to an embodiment of the invention;
  • FIG. 5 depicts a remote control according to an embodiment of the invention; and
  • FIG. 6 is a flowchart illustrating the functional steps of an embodiment of the invention.
  • DETAILED DESCRIPTION
  • In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
  • Functional Overview
  • Embodiments of the invention provide for programming a remote control in an easy and intuitive manner. Embodiments of the invention allow a user to configure a first remote control (referred to herein as a target remote control) to emulate the functionality of a second remote control (referred to herein as the source remote control). For example, users may use embodiments of the invention to configure a target remote control to emulate the functionality of a plurality of source remote controls, i.e., a single target remote control may be configured to emulate the functionality of more than one source remote control.
  • The mode code of a source remote control is identified and thereafter communicated to the target remote control. The mode code of the source remote control may be identified, as explained in further detail below, by analyzing the IR codes contained within received signals transmitted from the source remote control.
  • In an embodiment of the invention, a computing device stores control data that identifies one or more mode codes. Each of the one or more mode codes identifies a set of signals (or IR codes) used by a type of remote control to control a type of device. The computing device also stores data about the set of IR codes associated with each mode code. The computing device may be implemented using a Digital Video Recorder (DVR) from TiVo, Inc. In this example, the DVR stores control data that identifies how to program a variety of remote controls. The computing device is coupled to a detector that is capable of exchanging signals with a remote control, e.g., the DVR contains IR control 620, described in further detail below. To facilitate the ease of programming the target remote control and to minimize any possible frustration on behalf of the user, the computing device may display instructions and/or assistance on a display, such as a television, to walk the user through all parts and aspects of the process.
  • To program a target remote control, a user presses a button on the source remote control to cause a signal, such as an IR signal containing an IR code, to be transmitted from the source remote control to be received by the computing device. The computing device analyzes the received signal to determine operation data that identifies an operation indicated by the signal. The operation data may contain an IR code. For example, if the user pressed the button to increase the volume, then the operation data contained within the signal would indicate the IR code associated with the operation to increase the volume on the device being controlled by the source remote control.
  • The computing device consults the control data store to determine, based at least in part on the operation data, a particular mode code that is associated with the source remote control. The particular mode code identifies the set of signals used by the source remote control to control a particular device. Thus, in the above example, the computing device may determine that the source remote control is model XYZ because the IR code contained in the operation data received in the signal matches model XYZ. The computing device may use the IR codes contained within the operation data to determine the mode code of the source remote control.
  • Once the particular mode code is identified, it may be used to program the target remote control using a variety of methods. For example, the computing device may display a user interface on a display, such as a television, that visibly presents the particular mode code to the user. The user may thereafter manually program the target remote control with the particular mode code. In another embodiment, the computing device may transmit the particular mode code to the target remote control. Once the particular mode code is received by the target remote control, the target remote control may configure itself using the particular mode code without user intervention.
  • Other embodiments shall be discussed to enhance the ease of use and efficiency of programming the target remote control. For example, the computing device may allow a user to select a particular brand of a device by the target remote control on a user interface. Once the computing device receives data that indicates the user's selection, the computing device may eliminate possible modes codes based on the selected brand. Additionally, the computing device may suggest to the user certain operations to perform or keys to press on the source remote control to help distinguish the mode code of the source remote control between possible mode code candidates based on the IR code produced by the source remote control.
  • Architecture Overview
  • Prior to discussing the functional steps performed by embodiments of the invention, the architecture of an embodiment shall be presented. FIG. 1 depicts a system 100 including set-top control unit 110 controlling an external set-top box 200 in accordance with certain embodiments.
  • Certain embodiments are implemented as an advanced set-top unit 110 packaged in a shipping container with cables, accessories, and a remote control 120. Certain further embodiments provide control of cable and satellite set-top boxes 200 by IR control 114. Certain embodiments support some satellite boxes 200 by serial control 114. In certain embodiments, remote control unit 120 may be a TiVo Remote Control Unit, available from TiVo Incorporated, of Alviso, Calif.
  • The television source 202 can be from a variety of sources, including: 1) a roof-top antenna or rabbit ears receiving terrestrial analog broadcast, 2) a buried coaxial cable delivering analog and digital cable signals, 3) a satellite antenna receiver digital satellite broadcast, and 4) a roof-top antenna receiving terrestrial digital broadcast.
  • If the signal source 202 is from a roof-top or rabbit ear antenna, a user connects the cable from the antenna directly to the RF input on the Set-top control unit. The internal tuner in the Set-top control unit set-top box is used to select which program to view or record. The viewer selects which channel to tune to by using the remote control unit 120. After the selection is made, the Set-top control unit tunes its internal tuner to receive the channel selected.
  • If the signal source 202 is from a buried cable from a cable provider, the user can choose to: 1) connect the cable to an analog set-top box, 2) connect the cable to a digital set-top box, or 3) connect the cable directly to the Set-top control unit. Note that in certain embodiments, the cable may be fiber optic. In certain other embodiments, the cable may be coaxial cable.
  • If the signal source 202 is from cable and the user has an analog cable set-top box, the cable is connected to the cable set-top box. Note that in certain embodiments, the cable may be fiber optic. In certain other embodiments, the cable may be coaxial cable. The cable set-top box contains an internal tuner that will be tuned to the channel the viewer wishes to view or record. The cable set-top box 200 is then connected 118 to the Set-top control unit 110 in one of two ways:
      • 1) The channel selected is modulated onto either channel 3 or 4 and output on a RF connector. The RF connector is connected 118 to the RF input connector on the Set-top control unit 110 and the internal tuner 640 (see FIG. 2) in the Set-top control unit 110 is tuned to channel 3 or 4 to receive the channel.
      • 2) The channel selected is output on either a composite or S-Video connectors. These connectors are connected 118 to composite or s-video inputs on the Set-top control unit 110. If available, the preferred connection 118 is using s-video; if S-Video is not provided then the preferred connection 118 is composite in certain embodiments. Both s-video and composite provide higher quality connections 118 than RF in certain embodiments.
  • The viewer selects which channel to tune to by using the Remote Control Unit 120. After the selection is made, the set-top control unit 110 transmits an IR signal 114 to the Cable set-top box 200 and the Cable set-top box 200 tunes its internal tuner to the channel. The channel is passed to the set-top control unit 110 by either the RF, composite, or S-Video outputs. The set-top control unit 110 must be configured to receive the channel from its RF, composite, or S-Video inputs. If the RF input is selected, the Set-top control unit 110 must also tune its internal tuner 640 (see FIG. 2) to either channel 3 or 4, depending upon which channel the cable box 200 is configured to receive the signal.
  • If the signal source 202 is from cable and the user has a digital cable set-top box 200, the cable 118 is connected to the digital cable set-top box 200. Note that in certain embodiments, the cable may be fiber optic. In certain other embodiments, the cable may be coaxial cable. The digital cable set-top box 200 contains an internal tuner that will be tuned to the channel the viewer wishes to view or record. The cable set-top box 200 connects 118 to the set-top control unit 110 in one of two ways:
      • 1) The selected channel is modulated on either channel 3 or 4 and output on a RF connector. The RF connector is connected to the RF input connector on the Set-top control unit 110 and the internal tuner in the Set-top control unit 110 is tuned to channel 3 or 4 to receive the channel, and
      • 2) The channel selected is output on either a composite or S-Video connectors. These connectors are connected to composite or s-video inputs on the Set-top control unit 110. Using the S-Video connectors in certain embodiments provides the highest quality connection.
  • The viewer selects which channel to tune to by using the TiVo Remote Control Unit 120. After the selection is made, the Set-top control unit 110 transmits 114 an IR signal to the digital cable set-top box 200 and the digital cable set-top box 200 tunes its internal tuner to the channel. The channel is passed 118 to the TiVo set-top unit 110 by either the RF, composite, or S-Video outputs. The TiVo set-top unit 110 must be configured to receive 118 the channel from its RF, composite, or s-video inputs. If the RF input is selected, the Set-top control unit 110 must also tune its internal tuner 640 (see FIG. 2) to either channel 3 or 4, depending on which channel the digital cable box 200 is configured to receive the signal.
  • If the signal source 202 is from a satellite antenna, the satellite receiver digital set-top box 200 is connected 118 to the Set-top control unit 110 in an identical fashion as described above for a digital cable set-top box 200. As many satellite receivers also require a cable or terrestrial broadcast antenna to receive local channels, the preferred connection for a satellite receiver is using the S-Video connectors in certain embodiments for the highest quality connection. Such connection also leaves the RF input connection on the Set-top control unit 110 free to attach a cable or roof-top antenna to receive local channels.
  • Some digital satellite receivers support serial data ports. If so, rather than use IR to control the satellite receiver set-top box 200, the serial output port 508 (see FIG. 2) on the Set-top control unit 110 can be connected 114 to the serial data port on the satellite receiver.
  • If the signal source 202 is from a digital terrestrial antenna and the digital terrestrial set-top box 200 provides an option to output standard NTSC compatible video on either RF, composite, or S-Video outputs. Then one of these outputs can be connected 118 to the corresponding input on the Set-top control unit 110. The digital terrestrial set-top box 200 is connected 118 to the Set-top control unit 110 in an identical fashion as described above for a digital cable set-top box 200. The connection 118 using S-Video provides the highest quality connection in certain embodiments.
  • Certain embodiments provide server based services through modem access 116. Certain further embodiments provide server based services which include TiVo Services through modem access 116 or network access.
  • Certain further embodiments support at least some of the following features: Records television programming in digital form on at least one internal hard disk drive. Certain further embodiments support 10 hours of recorded programming and certain other further embodiments support 30 or more hours of programming. Certain embodiments support digital recording of audio-video content including random access to titled programming. Certain further embodiments support digitally accurate fast forward, rewind, slow motion, frame forward, frame back and high-quality freeze frame. Certain embodiments provide a 30 minute buffer of live programming being viewed enabling the viewer to pause, rewind and fast forward live TV.
  • Certain embodiments provide instant replay of live or recorded sporting events and educational programs. Certain embodiments provide programmable scheduling by time and channel, just like a VCR. Certain embodiments allow viewers to save recorded programs to their VCRs. Certain embodiments provide selectable recording quality.
  • Certain embodiments provide a RF input 644 with tuner 640, which is compatible with cable and terrestrial broadcast TV (see FIG. 2). Certain embodiments provide selectable RF input on channel 3, RF input on channel 4, composite, S-Video input, or digital input support for analog cable, digital cable, or satellite set-top devices.
  • In certain embodiments, a set-top control unit 110 is portable; electronics of the set-top control unit 110 are housed in a metal enclosure approximately 17 inch wide, 13 inches deep and 4 inches high.
  • Television 130 is fed 132 from set-top control unit 110 in certain embodiments. In certain further embodiments, connection 132 feeds signals from a composite video output 550 (see FIG. 2) of set-top control unit 110. In certain other further embodiments, connection 132 feeds signals from an S-video output 548 (see FIG. 2) of set-top control unit 110. In certain further embodiments, signals can be digital in addition to, or instead of, analog.
  • FIG. 2 depicts a system block diagram set-top control unit 110 in accordance with certain embodiments. This particular embodiment represents a relatively low level of integration. There are alternative embodiments that maintain many of the same architectural elements, but integrate functions via different means. A particular alternative embodiment incorporates elements of the Processor Subsystem 500, IR Controller 620 and Media Switch 560 into a single integrated circuit.
  • In certain embodiments, the electronics of set-top control unit 110 consists of a main System Board 400, an IR Controller Board (IR Ctrl) 572, a mass storage system 578, a Fan, and a Power Supply. Set-top control unit 110 supports one left-right stereo pair audio input 532-534, one composite video input 522, one S-Video input 524, one RF input 644 and one RF output 642 modulated onto either channel 3 or 4. In certain further embodiments, digital interfaces such as S/PDIF, Toslink, DVI, and HDMI are supported.
  • Mass storage system 578 may include any number and type of disk drives in certain embodiments. In certain embodiments, mass storage system 578 may be implemented using Flash memory.
  • The set-top control unit 110 provides at least one left-right stereo pair audio outputs 544-546, at least one composite video output 550, at least one S-Video output 548, at least one serial input/output 508, at least one IR blaster output 622, at least one IR input 622, and at least one modem input/output 510 which may be connected 116 to an associated phone line in certain embodiments.
  • The electronics within the area denoted by 400 is located on the System Board. The IR Controller Board (IR Ctrl) 572 and electrically connected with a cable. This allows the IR Controller board 572 to be physically attached to the front panel of the enclosure. For ease of explanation, IR control 572 is shown as a single entity in FIG. 2; however, IR control 572 may be implemented in other embodiments using a first component responsible for IR transmission, and a second component responsible for IR reception. Thus, as broadly used herein, IR control 572 may be implemented by any functional component (or set of components) that are capable of sending and receiving an input signal (IR, RF, or any other type of signal), and is not limited to infra-red input signals, but rather any type of input signal, including, but not limited to, sound and any portion of the electro-magnetic spectrum. IR control 572 may be implemented by a functional component that is capable of receiving an analog signal and converting the analog signal into a digital form for processing. The IR control 572 may be implemented using any combination of hardware and software.
  • The disk drive(s) in mass storage system 600 are connected by a cable 564 to the System Board 400. The Fan is connected to the System Board 400 with a cable 562. The Power Supply is connected to the System Board 400 and mass storage system 600 with power cables.
  • The system board 400 can be generally divided into: 1) subsystems that convert analog video and audio from analog to digital data; 2) subsystems that process digital audio and video data; and 3) subsystems that convert digital data back to analog. In other embodiments, digital data is converted to other digital formats such as HDMI.
  • The Tuner subsystem 810 and video and audio input subsystem 570 accept as input standard analog video and audio signals from set-top boxes, roof-top antennas, or rabbit ear antennas. The video and audio input subsystem 570 converts these signals into digital media streams.
  • The digital media streams 536 and 502 are processed and stored in the mass storage system 578 by Media Switch 560 and Processor Subsystems 500. Media streams 542 selected by the user to view are retrieved 564 from the mass storage system 578 by the Media Switch 560 and Processor Subsystem 500. Retrieved media stream 542 is converted from digital to analog by the Video and Audio Output Subsystem 540. Media Switch 560 and Processor Subsystem 500 also perform miscellaneous house keeping functions such as temperature monitoring and fan control 562. The Security Microprocessor 580 performs system identification and authentication for security purposes.
  • The System Board partitions into CPU, Input, and Output Subsystems. Each subsystem will be discussed in more detail below.
  • The Processor subsystem 500 includes the following in certain embodiments. The CPU is an IBM Power PC. The boot ROM is a 1 mega-bit Flash. The main memory is 4 meg×32-bit, implemented using two 4096k×16-bit EDO RAMs. The serial port is multiplexed to interface to the IR Controller Board and the Security Microprocessor. A second serial UART implements the external serial port that controls DSS Receivers. The modem is implemented with a Rockwell chipset and has an attached 1 mega-bit Flash that contains its microcode. The Media Switch ASIC controls multimedia streams to and from the disk drive. It also implements a number of system functions including the IDE disk drive controller, fan control and i2C bus control. The CPU Subsystem has a battery backed-up real-time clock and a temperature sensor interfaced to the i2C bus. The I2C bus is also used to control 502 Video and Audio Input system 570 and to control 506 Video and Audio Output Subsystem 540.
  • The Video and Audio Input Subsystem 570 inputs video and audio from I/O connectors, converts it from analog to digital and encodes it using MPEG2 compression. Channel selection is performed with a tuner 810 when the RF input is selected. The video and audio are converted from analog to digital and then passed to a compression engine. In certain embodiments, only one video/audio source can be selected at a time to be processed by the compression engine.
  • The video compression is performed with an MPEG encoder chip set in certain embodiments. In certain embodiments, an MPEG encoder chip set coupled with RAM memories performs video compression. In certain further embodiments, the MPEG encoder chip set is composed of exactly one integrated circuit. A Sony MPEG2 encoder chip performs video compression in certain further embodiments. A DSP is used in certain embodiments to perform audio compression. In certain further embodiments, a DSP from Analog Devices is used to perform audio compression.
  • The Video and Audio Output Subsystem 540 decompresses video and audio cached on mass storage system 578, converts it back into analog signals, and drives the output connectors. Certain embodiments of set-top control unit 110 support at least one stereo pair of audio output, at least one composite video output, at least one S-Video output and at least one RF output modulated onto either channels 3 or 4. Certain further embodiments of set-top control unit 110 support at least two stereo pair of audio output and at least two composite video outputs.
  • The compressed video/audio stream 542 is transferred to an MPEG2 decoder chip set for decoding in certain embodiments. In certain further embodiments the MPEG decoder chip set is coupled to RAM memory. The compressed video/audio stream 542 is transferred to an IBM MPEG2 decoder chip with coupled RAM memory for decoding in certain further embodiments.
  • The uncompressed digital video, output by the MPEG decoder chip set, is sent to a video encoder to convert the video back into analog form before driving the video output connectors in certain embodiments. In certain further embodiments, a Phillips video encoder chip performs the conversion. Audio is mixed with user interface sound effects before driving the audio output connectors in certain embodiments. Audio is converted from digital into analog and then mixed with user interface sound effects before driving the audio output connectors in certain further embodiments.
  • The IR Controller Board 572 contains an IR Microcontroller, an IR Photo receiver module, and LED's indicators. IR controller board 572 is connected 514 to the System Board with a ribbon cable that connects the IR Microcontroller to the Power PC using the Power PC's serial port in certain embodiments. In an alternative embodiment, the IR receive and transmit control functions are incorporated into the same integrated circuit as the Processor Subsystem and are connected internally. In this alternative embodiment, the IR photo receiver and LED indicators may be on a separate board than the integrated circuit, connected by a cable. One of ordinary skill in the art shall appreciate that there are many ways to configure IR transmit and receive hardware.
  • Set-top control unit 110 mass storage system 578 supports any number of disk drives in certain embodiments. The power for the disk drives is connected directly from the power supply. The IDE interfaces of the drives are connected 564 to the System board with a flat ribbon cable.
  • Note that in certain embodiments, IR control codes are stored in an IR control code database 1100 (see FIG. 3) residing on mass storage system 578.
  • FIG. 3 depicts data flow regarding IR control of external set-top boxes in accordance with certain embodiments.
  • In certain embodiments, IR control database 1100 resides on the mass storage system 578 and contains at least one IR control entry. A first IR control entry is accessed 1102 to IR control generator 1110. IR control generator 1110 processes the IR control entry and sends 1112-1122 it to be prepared 1130 for presentation 1132 to a serial device 1140. Serial device 1140 serially transmits this presented information as control signals to an external set-top box.
  • In certain further embodiments, timing generation 1120 is performed before 1122 it is prepared 1130 for presentation 1132 to a serial device 1140. In certain embodiments, preparation 1130 includes processing similar to the “C” programming language function “sprintf”. In certain further embodiments, preparation 1130 includes multiplexing serial streams to be sent to serial device 1140. In certain further embodiments, preparation 1130 includes queuing various multiplexed serial streams to be sent to serial device 1140.
  • In certain embodiments, the serial device 1140 includes at least one IR controller. In certain further embodiments, the serial device 1140 further includes a second serial device physical transport layer, which may include either wireline or wireless transport mechanisms.
  • In certain embodiments, raw IR control library 1180 resides on the mass storage system 600 and contains at least one raw IR control entry. A first raw IR control entry is accessed 1182 by a library parsing operation 1190 to create a processed first IR control entry. The processed first IR control entry is communicated 1192 and received 1192 to create a received first IR control entry. The received first IR control entry is inserted into IR control database 1100 as an IR control entry of the IR control database 1100.
  • In certain further embodiments, first raw IR control entry is accessed 1182 by a library parsing operation 1190 to create a processed first IR control entry syntactic specification. The processed first IR control entry syntactic specification is communicated 1192 and received 1192 to create a received first IR control entry.
  • Syntactic specifications provide for the specification of many crucial forms of communication information in an IR control entry. This includes but is not limited to specification of how many digits are in a channel. This also includes but is not limited to specifying whether an enter or cancel key is used at the end of IR blasting sequence to delimit channels. This also includes but is not limited to specifying delays between transmission of digits or symbols. This also includes but is not limited to specifying prefix keys. Prefix keys are not digits, which may used to delimit switch settings in certain embodiments. Many set-top boxes have an A/B switch, often with channels on both A and B switch settings. Some set-top boxes supporting satellite reception further have a C-band switch setting. This also includes but is not limited to specifying postfix keys. Postfix keys are not digits which alter the interpretation of the preceding IR blasting sequence.
  • Note that a syntactic specification may be the entire IR control entry, or a part of the entry. This also includes but is not limited to syntactic specifying IR control entries further referencing other syntactic specifying IR control entries. This supports development of complex blasting codes to perform essentially macro operations.
  • In certain further embodiments, the first raw IR control entry is accessed 1184 by raw data IR generator 1200 to create a raw IR control packet, which processes the raw IR control packet and sends 1202-1122 it to be prepared 1130 for presentation 1132 to a serial device 1140. Serial device 1140 serially transmits this presented information as control signals to an external set-top box.
  • In certain further embodiments, timing generation 1120 is performed before 1122 it is prepared 1130 for presentation 1132 to a serial device 1140. In certain embodiments, preparation 1130 includes processing similar to the “C” programming language function “sprintf”. In certain further embodiments, preparation 1130 includes multiplexing serial streams to be sent to serial device 1140. In certain further embodiments, preparation 1130 includes queuing various multiplexed serial streams to be sent to serial device 1140.
  • In certain embodiments, a prototype IR control database 1150 resides on mass storage system 600 containing at least one prototype IR control entry. A control code search 1160 accessing 1152 a first prototype IR control entry creates a first raw IR control entry for raw IR control library 1180. In certain further embodiments, the first prototype IR control entry is accessed 1154 by timing interface 1160 to create a first IR control packet, which then follows the same data flow 1122 as has been previously described.
  • FIG. 4 is a block diagram of a system 4000 according to an embodiment of the invention. System 4000 includes a computing device 4101, a detector 4020, a source remote control 4040, a target remote control 4050, and communications links 4060 and 4062.
  • Computing device 4010 may be implemented using any computerized device that is capable of processing and storing control data. In an embodiment, computing device 4010 (in conjunction with detector 4020) performs the functional steps illustrated in FIG. 6. The functions performed by computing device 4010 are described in further detail below.
  • Detector 4020 is a functional component that receives signals from remote controls, sends signals to remote controls. Detector 4020 is operationally connected to computing device 4010, and may exchange data with computing device 4010. Detector 4020 may be implemented using any means that can exchange signals over communications links 4060 and 4062 with remote controls. Detector 4020 captures and decodes signals received from remote controls. Although many remote controls use radio frequency (RF) or infra-red (IR) transmitters, detector 4020 may communicate with remote controls using any transmission medium, including portions of the electromagnetic spectrum and sound.
  • The functional components of FIG. 4 are not intended to represent the only embodiments of the invention, as other embodiments may perform the functions described above in a single component, or multiple other components.
  • In an embodiment, computing device 4010 includes a control data store 700 that may be implemented using any volatile or non-volatile memory capable of storing control data. Control data, described in further detail below, is used by certain embodiments to program target remote control unit 4050. Control data may be populated in control data store by a variety of means, e.g., it may be stored at time of manufacturer of computing device 4010 or may be loaded into control data store over a network connection (not shown).
  • Source remote control 4040 refers to any remote control whose functions are to be emulated in target remote control 4050. Target remote control 4050 refers to any remote control that is being configured to emulate the functionality, in whole or in part, of source remote control 4040. While only one source remote control is depicted in FIG. 4 for ease of explanation, system 4000 may be employed to copy the functionality, in whole or in part, of any number of source remote controls 4040 to target remote control 4050.
  • Communications link 4060 may be implemented by any medium or mechanism that provides for the exchange of data between detector 4020 and target remote control 4050. Communications link 4062 may be implemented by any medium or mechanism that provides for the exchange of data between detector 4020 and source remote control 4040. Examples of communications links 4060 and 4062 include, without limitation, IR signals, RF signals, sound, and any portion of the electromagnetic spectrum.
  • FIG. 5 depicts a hand held remote control 120 in accordance with an embodiment of the invention. The remote control in FIG. 5 may be used as source remote control 4040 or target remote control 4050. The remote control of FIG. 5 is merely illustrative, as any remote control may be used as either source remote control 4040 and any universal remote control may be used as target remote control 4050.
  • Programming a Remote Control
  • FIG. 6 is a flowchart illustrating the functional steps of an embodiment of the invention. In step 610, control data that identifies one or more mode codes is stored. Control data may be stored in step 610 in control data store 700. Control data contains information about remote control signaling, e.g., the data store may contain information about a set of mode codes, and information about the set of IR codes associated with each mode code. Control data is used to match input signals transmitted by a remote control device to known signals of remote controls.
  • In this embodiment, control data store 700 stores information employed by embodiments to map one or more user button presses to a set of mode codes. For example, the control data store 700 may contain sets of all mode codes for a particular remote control, and the set of IR codes associated with each mode code. Control data store 700 may contain information about each remote control such as carrier frequency, pulse descriptions, protocol and button identifiers. Control data store 700 may also contain information that maps mode codes to a brand of the target devices controlled by the mode codes.
  • Control data store 700 may be organized for more efficient processing. For example, it may be presorted or include an index, such as an index on a brand of a device controlled by a remote control or an index on any detectable element of the remote control signal. Data stored in control data store 700 may be preprocessed (possibly including hand processing) to optimize the user interaction. Data stored in control data store 700 may also be compressed to store as much data in control data store as possible. After the performance of step 610, processing proceeds to step 620.
  • In step 620, an input signal is received. Step 620 may be performed by a user directing a source remote control towards set-top unit 110 and pressing a button, e.g., pressing the number “3” on the source remote control. Although most remote controls typically use radio frequency (RF) or Infrared (IR) transmitters, an input signal may be sent to set-top unit 110 by the source remote control using a variety of means, e.g., anywhere within electromagnetic spectrum, sound, or any other method of transmitting a signal. Likewise, the target remote control may also communicate using a variety of means, e.g., anywhere within electromagnetic spectrum, sound, or any other method of transmitting a signal. Thus, the input signal received in step 620 may be transmitted using any method for transmitting a signal. The input signal received in step 620 may contain an IR code. After the processing of step 620, processing proceeds to step 630.
  • In step 630, a particular mode code that is associated with the source remote control being configured is determined. In an embodiment, set-top control unit 110 is configured to compare the received input signal received in step 620 to information stored in control data store 700 about which input signals match input signals from specific remote controls. Set-top control unit 110 determines which particular mode code, among the plurality of mode codes stored in control data store 700, is associated with the source remote control.
  • In an embodiment, step 630 may be performed by analyzing the particular IR code contained within the input signal received in step 620 to determine if the IR code is used by any mode codes identified in the control data stored in the control data store 700. If the IR code is uniquely associated with a particular mode code, then that mode code is the mode code associated with the source remote control. If two or more mode codes may produce the IR code received in the input signal received in step 620, then the computing device will attempt to distinguish between those candidate mode codes, as explained in further detail below, to determine which of the candidate mode codes is associated with the source remote control.
  • In an embodiment, after the performance of step 630, processing proceeds to step 640. In step 640, set-top control unit 110 displays the particular mode code determined in step 630 on a display, such as TV 130. The set-top control unit 110 may display instructions on the TV to instruct the user on how to program target remote control using the mode code. For example, the particular mode code determined in step 630 may be a short sequence of digits (e.g., 1, 2, 3, 4). When the user enters the digits of the mode code in conjunction with other remote control-specific key presses (used to configure the target remote control with the mode code), the target remote control is programmed to emulate the specific remote control functionality indicated by the mode code. Thus, the target remote control emulates the functionality of the source remote control after the target remote control is configured with the particular mode code. Thereafter, the user may test the target remote control to see if the remote control is emulating the proper functionality, e.g., the user may try to turn the power on and off on the intended device or perform similar tests, and if the user is successful after performing each test, then the target remote control is emulating the functionality of the source remote control.
  • In another embodiment, after the performance of step 630, processing proceeds to step 650. In step 650, set-top control unit 110 transmits the particular mode code chosen in step 630 to the target remote control. The target remote control may then configure itself using the received mode code. In this way, the user does not need to manually configure the target remote control.
  • Advantageously, the user may configure the target remote control with greater ease and efficiency over prior approaches. The user may be presented information on TV 130 that clearly walks the user through the process of programming the target remote control. The user has to press only a small number of buttons on source remote control 120 to properly configure target remote control 120 to operate the intended device, thereby reducing both the potential for frustration and the time required in configuring target remote control 120.
  • Alternatives and Extensions
  • For ease of explanation, embodiments have been described above wherein control data store 700 is implemented on set-top control unit 110. However, other devices may perform the steps illustrated in FIG. 6. For example, the control data store may also be implemented on a standalone device or integrated into another device, such as TV 130. Any functional component may be configured to perform the steps of FIG. 6 if (a) the component can store control data, and (b) the component can send and receive signals from a remote control. Consequently, as other embodiments of the invention may store control data other than the set-top control unit 110, embodiments of the invention are not limited to any particular component performing a particular step illustrated in FIG. 6.
  • In another embodiment, set-top unit 110 may interact with the user to improve the accuracy, efficiency and/or simplicity of detecting the particular mode code. In an embodiment, set-top control unit 110 may assist the determination of step 630 by eliminating one or more mode codes from the set of candidate mode codes being considered based on the brand of the device that the user wishes to control. In such an embodiment, set-top control unit 110 may display information on a display (such as TV 130) that instructs a user to select a brand of the device the user wishes to control with the target remote control. For example, set-top control unit 110 may display a list of brands on TV 130, and the user may use the target remote control to select one of the brands. Once the set-top control unit 110 receives an input signal from a remote control that identifies a selected brand, the set-top control unit 110 may narrow its search of potential mode codes that correspond to that brand when performing step 630.
  • In another embodiment, set-top control unit 110 may display instructions on a display (such as TV 130) that instructs the user to press one or more buttons on the source remote control. Guiding the user to press one or more buttons in a sequence may be advantageous, as particular mode codes may be distinguished based on particular IR codes associated with the operation issued by pressing a button on the source remote control. In other words, by pressing one or a few buttons, the set-top control unit 110 may be able to distinguish a particular mode code from all other mode codes stored in the control data store 700. For example, if, for a set of mode codes, the IR codes associated with the “power” buttons are too similar, the set-top control unit 110 may instruct the user to start by pressing the number “3” on the source remote control to narrow down the possible options in performing step 630, as the IR code associated with the “3” button may be unique for those set of mode codes. If set-top control unit 110 is unable to determine the particular mode code associated with the source remote control after a first iteration, then set-top control unit 110 may instruct the user to press another button that may further narrow the options or resolve to the correct mode code associated with the source remote control.
  • In an embodiment, in addition to transmitting a mode code to the target remote control, set-top control unit may transfer additional information, such as information describing a user interface to perform operations on the target remote control, to the target remote control. For example, set-top control unit 110 may transfer information to target remote control describing a user interface associated with source remote control in step 630. Thereafter, remote control may use the information to create a user interface displayed on target remote control to enable the user to use the target remote control to perform any operation associated with the source remote control. Advantageously, such an embodiment would allow the target remote control to implement a customized user interface based on a particular mode code that the target remote control was configured to emulate.
  • In an embodiment, target remote control may be configured to emulate a source remote control that controls any variety of devices. The target remote control may control any device, not just a component in a home entertainment center. For example, the target remote control may operate kitchen appliances, computer equipment, an automobile, a garage door, etc.
  • For ease of explanation, the term “IR code” has been used herein to refer to data that describes a command that is transmitted from a remote to another entity, as that is a commonly used term in the art as most commands are transmitted using infra-red (IR) signals. However, it should be understood to those in the art that any medium may be used to transport commands from a remote control, e.g., the medium may be within the electromagnetic spectrum, sound, or any other method for transmitting a signal. Thus, the term IR code, as used herein, is not limited to merely a code associated with an infra-red signal, but broadly encompasses any mechanism for identified a command that is transmitted from a remote control to another entity.
  • Programming Learning Universal Remote Controls
  • Embodiments of the invention may program learning universal remote controls. A learning universal remote control may receive signals from set-top control unit 110 instructing the learning universal remote control to configure itself to emulate a specific remote control. Set-top control unit 110 may present information on a display, such as TV 130, that instructs the user on how to program the learning universal remote control using data stored in the set-top control unit 110. Set-top control unit 110 may instruct the user to position the target remote control in front of the IR control 620, and the set-top control unit 110 may transmit one or more IR codes that are received by the target remote control. The received IR codes may be used by the target remote control to configure the target remote control.
  • Programming Programmable Universal Remote Controls
  • Embodiments of the invention may program programmable universal remote controls. The programmable universal remote control may communicate to set-top control unit 110 through an appropriate interface, such as an USB port, to receive mode codes to configure the programmable universal remote control. An embodiment of the invention may, in addition to transmitting one or more mode codes to a programmable universal remote control, also transmit information describing a user interface used on the programmable universal remote control. The set-top control unit 110 may provide information about a preconfigured user interface for use with a specific mode code. Additionally, the set-top control unit 110 may enable the user to configure his or her own user interface to operate any device he or she wishes, thus allowing the user to make full use of the programmable universal remote control, as it may control any device in a home entertainment center or a device outside of a entertainment center, such as multiple consumer electronics devices, motorized blinds and remotely dimmable lights. In an embodiment, the computing device 4101 may transmit one or more mode codes and/or data describing one or more user interfaces that enable one to submit one or more commands associated with a mode code to a programmable remote control, such as the PRONTO line remote controls manufactured by Phillips.
  • In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims (20)

What is claimed is:
1. An apparatus comprising:
a first interface, implemented at least partially by computing hardware, configured to receive user interface information describing a first pre-configured user interface associated with a first remote control for controlling a first electronic device, a second pre-configured user interface associated with a second remote control for controlling a second electronic device, and a user-configured user interface for controlling multiple electronic devices;
a user interface subsystem, implemented at least partially by computing hardware, configured to displaying the first pre-configured user interface, the second pre-configured user interface, and the user-configured user interface;
a device control subsystem configured to:
emulate functionality of the first remote control to control the first electronic device based on first commands submitted via the first pre-configured user interface;
emulate functionality of the second remote control to control the second electronic device based on second commands submitted via the second pre-configured user interface;
control the multiple electronic devices based on multiple commands submitted via the user-configured user interface.
2. The apparatus of claim 1, wherein the first device and the second device are in a home entertainment center, and the multiple devices include any device in the home entertainment center.
3. The apparatus of claim 1, wherein the multiple electronic devices include the first electronic device and the second electronic device.
4. The apparatus of claim 1, wherein the user-configured interface is configured by user input at a computing device separate from the remote control prior to the remote control receiving the user interface information.
5. The apparatus of claim 1, wherein the device controlling subsystem comprises a signal transmission subsystem configured to control the first electronic device, the second electronic device, and the multiple electronic devices by transmitting control codes specifying the first commands, the second commands, and the multiple commands, respectively.
6. The apparatus of claim 5, wherein the control codes include a complex code specifying a macro operation, the complex code including multiple control codes specifying multiple individual operations.
7. The apparatus of claim 1, wherein the first interface is further configured to receive data specifying control codes for each of the first electronic device, the second electronic device, and the multiple electronic devices.
8. The apparatus of claim 1, wherein the first interface is further configured to receive codes for each of the first electronic device, the second electronic device, and the multiple electronic devices, the apparatus comprising a configuration subsystem configured to self-configure the apparatus based on the codes.
9. One or more non-transitory computer readable media storing instructions that, when executed by one or more computing devices, cause:
receiving, at a remote control device, user interface information describing a first pre-configured user interface associated with a first remote control for controlling a first electronic device, a second pre-configured user interface associated with a second remote control for controlling a second electronic device, and a user-configured user interface for controlling multiple electronic devices;
emulating functionality of the first remote control to control the first electronic device based on displaying, at the remote control device, the first pre-configured user interface;
emulating functionality of the second remote control to control the second electronic device based on displaying, at the remote control device, the second pre-configured user interface;
controlling the multiple electronic devices based on displaying, at the remote control device, the user-configured user interface.
10. The one or more non-transitory computer readable media of claim 9, wherein the first device and the second device are in a home entertainment center, and the multiple devices include any device in the home entertainment center.
11. The one or more non-transitory computer readable media of claim 9, wherein the multiple electronic devices include the first electronic device and the second electronic device.
12. The one or more non-transitory computer readable media of claim 9, wherein the user-configured interface is configured by user input at a computing device separate from the remote control prior to the remote control receiving the user interface information.
13. The one or more non-transitory computer readable media of claim 9, wherein controlling a given device of the first electronic device, the second electronic device, or the multiple electronic devices comprises transmitting control codes associated with the given device, the control codes specifying commands to perform operations at the given device, the corresponding displayed user interface for controlling the given device enabling submission of the commands.
14. The one or more non-transitory computer readable media of claim 13, wherein the control codes include a complex code specifying a macro operation, the complex code including multiple control codes specifying multiple individual operations.
15. The one or more non-transitory computer readable media of claim 9, wherein the instructions, when executed by the one or more computing devices, further cause receiving, at the remote control device, data specifying control codes for each of the first electronic device, the second electronic device, and the multiple electronic devices.
16. The one or more non-transitory computer readable media of claim 9, wherein the instructions, when executed by the one or more computing devices, further cause receiving, at the remote control device, codes for each of the first electronic device, the second electronic device, and the multiple electronic devices, the remote control device configuring itself based on the codes.
17. A method comprising:
receiving, at a remote control device, user interface information describing at least: a first pre-configured user interface associated with a first remote control for controlling a first electronic device, a second pre-configured user interface associated with a second remote control for controlling a second electronic device, and a user-configured user interface for controlling multiple electronic devices;
emulating functionality of the first remote control to control the first electronic device based on displaying, at the remote control device, the first pre-configured user interface;
emulating functionality of the second remote control to control the second electronic device based on displaying, at the remote control device, the second pre-configured user interface;
controlling the multiple electronic devices based on displaying, at the remote control device, the user-configured user interface.
18. The method of claim 17, wherein the user-configured interface is configured by user input at a computing device separate from the remote control device prior to the remote control device receiving the user interface information.
19. The method of claim 17, wherein controlling a given device of the first electronic device, the second electronic device, or the multiple electronic devices comprises transmitting control codes associated with the given device, the control codes specifying commands to perform operations at the given device, the corresponding displayed user interface for controlling the given device enabling submission of the commands.
20. The method of claim 19, wherein the control codes include a complex code specifying a macro operation, the complex code including multiple control codes specifying multiple individual operations.
US15/231,548 2003-10-02 2016-08-08 Remote control programming system Abandoned US20160353153A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/231,548 US20160353153A1 (en) 2003-10-02 2016-08-08 Remote control programming system

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US50876903P 2003-10-02 2003-10-02
US10/958,674 US7671758B1 (en) 2003-10-02 2004-10-04 Remote control programming system
US12/639,960 US8786411B1 (en) 2003-10-02 2009-12-16 Remote control programming system
US14/338,335 US9414005B1 (en) 2003-10-02 2014-07-22 Remote control programming system
US15/231,548 US20160353153A1 (en) 2003-10-02 2016-08-08 Remote control programming system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US14/338,335 Continuation US9414005B1 (en) 2003-10-02 2014-07-22 Remote control programming system

Publications (1)

Publication Number Publication Date
US20160353153A1 true US20160353153A1 (en) 2016-12-01

Family

ID=44652078

Family Applications (4)

Application Number Title Priority Date Filing Date
US10/958,674 Active 2025-06-09 US7671758B1 (en) 2003-10-02 2004-10-04 Remote control programming system
US12/639,960 Active 2025-11-20 US8786411B1 (en) 2003-10-02 2009-12-16 Remote control programming system
US14/338,335 Active US9414005B1 (en) 2003-10-02 2014-07-22 Remote control programming system
US15/231,548 Abandoned US20160353153A1 (en) 2003-10-02 2016-08-08 Remote control programming system

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US10/958,674 Active 2025-06-09 US7671758B1 (en) 2003-10-02 2004-10-04 Remote control programming system
US12/639,960 Active 2025-11-20 US8786411B1 (en) 2003-10-02 2009-12-16 Remote control programming system
US14/338,335 Active US9414005B1 (en) 2003-10-02 2014-07-22 Remote control programming system

Country Status (1)

Country Link
US (4) US7671758B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259958A (en) * 2018-02-07 2018-07-06 深圳创维-Rgb电子有限公司 Remote keying response method, device, equipment and storage medium
US10225507B2 (en) * 2016-01-05 2019-03-05 Samsung Electronics Co., Ltd. Display system, display apparatus and method for controlling the same
US20200021876A1 (en) * 2009-09-29 2020-01-16 Universal Electronics Inc. System and method for reconfiguration of an entertainment system controlling device

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7671758B1 (en) * 2003-10-02 2010-03-02 Tivo Inc. Remote control programming system
US7626641B1 (en) * 2004-04-29 2009-12-01 EchoStar Technologies, L.L.C. Method and apparatus for a simplified power scan for remote control
US9805591B2 (en) 2005-09-08 2017-10-31 Universal Electronics Inc. System and method for widget-assisted setup of a universal remote control
US7907222B2 (en) 2005-09-08 2011-03-15 Universal Electronics Inc. System and method for simplified setup of a universal remote control
US11769398B2 (en) 2005-09-08 2023-09-26 Universal Electronics Inc. System and method for widget-assisted setup of a universal remote control
US9024733B2 (en) * 2005-11-30 2015-05-05 Koninklijke Philips N.V. Programming of a universal remote control device
US8069461B2 (en) 2006-03-30 2011-11-29 Verizon Services Corp. On-screen program guide with interactive programming recommendations
US9030315B2 (en) * 2006-08-29 2015-05-12 Siemens Industry, Inc. Binding methods and devices in a building automation system
US8418217B2 (en) 2006-09-06 2013-04-09 Verizon Patent And Licensing Inc. Systems and methods for accessing media content
US8566874B2 (en) 2006-10-03 2013-10-22 Verizon Patent And Licensing Inc. Control tools for media content access systems and methods
US8464295B2 (en) 2006-10-03 2013-06-11 Verizon Patent And Licensing Inc. Interactive search graphical user interface systems and methods
US8510780B2 (en) 2006-12-21 2013-08-13 Verizon Patent And Licensing Inc. Program guide navigation tools for media content access systems and methods
US8015581B2 (en) 2007-01-05 2011-09-06 Verizon Patent And Licensing Inc. Resource data configuration for media content access systems and methods
US8103965B2 (en) 2007-06-28 2012-01-24 Verizon Patent And Licensing Inc. Media content recording and healing statuses
US8051447B2 (en) 2007-12-19 2011-11-01 Verizon Patent And Licensing Inc. Condensed program guide for media content access systems and methods
US9626864B1 (en) * 2008-02-20 2017-04-18 Universal Electronics Inc. Communicating discovery information from remote control devices
US10223907B2 (en) * 2008-11-14 2019-03-05 Apple Inc. System and method for capturing remote control device command signals
US20100123834A1 (en) * 2008-11-14 2010-05-20 Apple Inc. System and Method for Capturing Remote Control Device Command Signals
KR20100075257A (en) * 2008-12-24 2010-07-02 삼성전자주식회사 Universal remote control apparatus for controlling plurality of electric appliances, universal remote control system and methods thereof
KR101589597B1 (en) 2009-04-20 2016-01-28 삼성전자 주식회사 Broadcasting signal receiving apparatus remote controller and pairing method thereof
US8643477B2 (en) 2009-06-01 2014-02-04 At&T Intellectual Property I, L.P. Programming a universal remote control via direct interaction
US8624713B2 (en) * 2009-08-11 2014-01-07 At&T Intellectual Property I, L.P. Programming a universal remote control via physical connection
US8410970B2 (en) 2009-08-13 2013-04-02 At&T Intellectual Property I, L.P. Programming a universal remote control via direct interaction
US20110279359A1 (en) * 2010-05-12 2011-11-17 Rovi Technologies Corporation Systems and methods for monitoring motion sensor signals and adjusting interaction modes
US20110283189A1 (en) * 2010-05-12 2011-11-17 Rovi Technologies Corporation Systems and methods for adjusting media guide interaction modes
TWI406565B (en) * 2010-06-01 2013-08-21 Avermedia Tech Inc Method of storing control signals of remote device and an electronic device using the method
JP2012023630A (en) * 2010-07-15 2012-02-02 Funai Electric Co Ltd Electrical apparatus
US9098109B2 (en) 2010-10-20 2015-08-04 Nokia Technologies Oy Adaptive device behavior in response to user interaction
CN103299330A (en) 2010-10-21 2013-09-11 圣脑私营有限责任公司 Method and apparatus for neuropsychological modeling of human experience and purchasing behavior
US9449324B2 (en) 2010-11-11 2016-09-20 Sony Corporation Reducing TV licensing costs
US9141982B2 (en) 2011-04-27 2015-09-22 Right Brain Interface Nv Method and apparatus for collaborative upload of content
US9106651B2 (en) * 2011-09-19 2015-08-11 Qualcomm Incorporated Sending human input device commands over internet protocol
US8433815B2 (en) 2011-09-28 2013-04-30 Right Brain Interface Nv Method and apparatus for collaborative upload of content
JP2016524397A (en) 2013-05-20 2016-08-12 トムソン ライセンシングThomson Licensing Remote control programming using images
US9368024B2 (en) 2013-09-27 2016-06-14 Apple Inc. Remote control configuration using a remote control profile
US9373250B2 (en) * 2014-12-30 2016-06-21 Smk Electronics Corporation Remote controller having one shot automatic mapping of learned function
CN106060105A (en) * 2016-04-29 2016-10-26 镇江惠通电子有限公司 Method and device for downloading control codes, display terminal and cloud server
KR102058386B1 (en) * 2019-05-02 2019-12-23 주식회사 오성전자 Method of setting a code set of a control target device used remote control
CN113068068A (en) * 2021-03-25 2021-07-02 深圳Tcl数字技术有限公司 Universal remote controller control method and device, television, remote controller and medium

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5959539A (en) * 1995-12-23 1999-09-28 Deutsche Thomson-Brandt Gmbh Apparatus for the remote control of electronic devices with key allocation
US6124804A (en) * 1994-11-10 2000-09-26 Matsushita Electric Industrial Co., Ltd. Remote controller, remote control interface, and remote control system including a remote controller and a remote control interface
US6133847A (en) * 1997-10-09 2000-10-17 At&T Corp. Configurable remote control device
US6211870B1 (en) * 1997-07-07 2001-04-03 Combi/Mote Corp. Computer programmable remote control
US20010011953A1 (en) * 1998-08-07 2001-08-09 Peter Rae Shintani Configurable remote control unit using a removable memory device
US20020140569A1 (en) * 2001-03-30 2002-10-03 Koninklijke Philips Electronics N.V. System and method for interleaving infrared command codes with identifier codes
US20030103088A1 (en) * 2001-11-20 2003-06-05 Universal Electronics Inc. User interface for a remote control application
US20030151538A1 (en) * 2000-07-13 2003-08-14 Universal Electronics Inc. Customizable and upgradable devices and methods related thereto
US6640144B1 (en) * 2000-11-20 2003-10-28 Universal Electronics Inc. System and method for creating a controlling device
US20030234737A1 (en) * 2002-06-24 2003-12-25 Nelson Terence J. Personal programmable universal remote control
US20050052423A1 (en) * 2000-03-15 2005-03-10 Harris Glen Mclean Online remote control configuration system
US6909378B1 (en) * 1999-11-26 2005-06-21 Koninklije Philips Electronics N.V. Method and system for upgrading a universal remote control
US7484234B1 (en) * 1999-04-29 2009-01-27 Tivo Inc. Method and apparatus for controlling at least one set-top box
US7671758B1 (en) * 2003-10-02 2010-03-02 Tivo Inc. Remote control programming system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4703359A (en) * 1985-05-30 1987-10-27 Nap Consumer Electronics Corp. Universal remote control unit with model identification capability
JP2687454B2 (en) * 1988-06-28 1997-12-08 ソニー株式会社 General commander
US5341166A (en) * 1992-02-27 1994-08-23 Video Control Technology, Inc. System for controlling selected devices having unique sets of control codes
US5691710A (en) * 1992-11-02 1997-11-25 Zenith Electronics Corporation Self learning IR remote control transmitter
US5629868A (en) * 1994-02-07 1997-05-13 Le Groupe Videotron Ltee Method of programming local control
US5796423A (en) 1995-07-14 1998-08-18 General Instrument Corporation System for integrating digital audio and analog video to provide seamless user transparent features
US6239718B1 (en) * 1996-02-23 2001-05-29 Kabushiki Kaisha Kenwood Learning-by-example programmable remote control system
US6057874A (en) 1996-11-21 2000-05-02 General Instrument Corporation Infrared blaster control system in cable television communication systems
US6008735A (en) * 1997-02-03 1999-12-28 Microsoft Corporation Method and system for programming a remote control unit
US5819294A (en) * 1997-08-06 1998-10-06 Philips Electronics North America Corporation Automatic configuration mechanism for universal remote
JPH11239305A (en) 1998-02-24 1999-08-31 Sony Corp Digital television broadcast receiver
US6081855A (en) 1998-04-15 2000-06-27 Oak Technology, Inc. Digital versatile disc playback system with flexible input interface
US6476947B1 (en) 1998-05-04 2002-11-05 Michael Lee Harvey Process and apparatus for maximizing a software component and minimizing a hardware component of an infrared code
US6530085B1 (en) 1998-09-16 2003-03-04 Webtv Networks, Inc. Configuration for enhanced entertainment system control
US6169879B1 (en) 1998-09-16 2001-01-02 Webtv Networks, Inc. System and method of interconnecting and using components of home entertainment system
JP2000324572A (en) * 1999-05-14 2000-11-24 Matsushita Electric Ind Co Ltd Remote control system
US6658663B1 (en) 2000-03-08 2003-12-02 Koninklijke Philips Electronics N.V. Business model for leasing storage on a digital recorder

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6124804A (en) * 1994-11-10 2000-09-26 Matsushita Electric Industrial Co., Ltd. Remote controller, remote control interface, and remote control system including a remote controller and a remote control interface
US5959539A (en) * 1995-12-23 1999-09-28 Deutsche Thomson-Brandt Gmbh Apparatus for the remote control of electronic devices with key allocation
US6211870B1 (en) * 1997-07-07 2001-04-03 Combi/Mote Corp. Computer programmable remote control
US6133847A (en) * 1997-10-09 2000-10-17 At&T Corp. Configurable remote control device
US20010011953A1 (en) * 1998-08-07 2001-08-09 Peter Rae Shintani Configurable remote control unit using a removable memory device
US7484234B1 (en) * 1999-04-29 2009-01-27 Tivo Inc. Method and apparatus for controlling at least one set-top box
US6909378B1 (en) * 1999-11-26 2005-06-21 Koninklije Philips Electronics N.V. Method and system for upgrading a universal remote control
US20050052423A1 (en) * 2000-03-15 2005-03-10 Harris Glen Mclean Online remote control configuration system
US20030151538A1 (en) * 2000-07-13 2003-08-14 Universal Electronics Inc. Customizable and upgradable devices and methods related thereto
US6640144B1 (en) * 2000-11-20 2003-10-28 Universal Electronics Inc. System and method for creating a controlling device
US20020140569A1 (en) * 2001-03-30 2002-10-03 Koninklijke Philips Electronics N.V. System and method for interleaving infrared command codes with identifier codes
US20030103088A1 (en) * 2001-11-20 2003-06-05 Universal Electronics Inc. User interface for a remote control application
US20030234737A1 (en) * 2002-06-24 2003-12-25 Nelson Terence J. Personal programmable universal remote control
US7671758B1 (en) * 2003-10-02 2010-03-02 Tivo Inc. Remote control programming system
US8786411B1 (en) * 2003-10-02 2014-07-22 Tivo Inc. Remote control programming system
US9414005B1 (en) * 2003-10-02 2016-08-09 Tivo Inc. Remote control programming system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200021876A1 (en) * 2009-09-29 2020-01-16 Universal Electronics Inc. System and method for reconfiguration of an entertainment system controlling device
US11076196B2 (en) * 2009-09-29 2021-07-27 Universal Electronics Inc. System and method for reconfiguration of an entertainment system controlling device
US11252463B2 (en) * 2009-09-29 2022-02-15 Universal Electronics Inc. System and method for reconfiguration of an entertainment system controlling device
US11533530B2 (en) 2009-09-29 2022-12-20 Universal Electronics Inc. System and method for reconfiguration of an entertainment system controlling device
US11825147B2 (en) 2009-09-29 2023-11-21 Universal Electronics Inc. System and method for reconfiguration of an entertainment system controlling device
US10225507B2 (en) * 2016-01-05 2019-03-05 Samsung Electronics Co., Ltd. Display system, display apparatus and method for controlling the same
CN108259958A (en) * 2018-02-07 2018-07-06 深圳创维-Rgb电子有限公司 Remote keying response method, device, equipment and storage medium

Also Published As

Publication number Publication date
US9414005B1 (en) 2016-08-09
US8786411B1 (en) 2014-07-22
US7671758B1 (en) 2010-03-02

Similar Documents

Publication Publication Date Title
US9414005B1 (en) Remote control programming system
US10210749B1 (en) Remote control system
US7484234B1 (en) Method and apparatus for controlling at least one set-top box
US10785539B2 (en) System and method for saving and recalling state data for media and home appliances
US8330582B2 (en) Online remote control configuration system
US8653950B2 (en) State-based remote control system
US7006006B2 (en) System and method for controlling home entertainment units with radio frequency and infrared signals
US20050054337A1 (en) Mobile telephone with remote-controlling capability, remote-controlling method and system therefor
US20020180894A1 (en) Remote control apparatus
KR20040015115A (en) Apparatus for upgrading a remote control system using an on screen display
KR20040082819A (en) Universal remote controller with batch processing and operating method for the same
KR20100081186A (en) Control data transmission method, controlled apparatus, remote control mediation apparatus, universal remote control apparatus, server, and remote control system
JPH0652665A (en) Vcr apparatus having cable-box control function and control method thereof
JP2001186579A (en) Remote controller
US20060080706A1 (en) Video processing apparatus which can respond to non-native remote commands and method of operation thereof
JP4568501B2 (en) Apparatus and method for responding to external command
MXPA99000516A (en) Methods and systems for providing information to a television using a personal computer
KR20050043271A (en) System and method for controlling remotely using rf id
KR20080016347A (en) Apparatus and method for recording audio and video signal
JPH11187328A (en) Digital broadcast receiver
JP2000078671A (en) Remote control unit and remote control system
JP2000306372A (en) Magnetic recording and reproducing apparatus

Legal Events

Date Code Title Description
AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, MARYLAND

Free format text: SECURITY INTEREST;ASSIGNOR:TIVO SOLUTIONS INC.;REEL/FRAME:041076/0051

Effective date: 20160915

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL

Free format text: SECURITY INTEREST;ASSIGNOR:TIVO SOLUTIONS INC.;REEL/FRAME:041076/0051

Effective date: 20160915

AS Assignment

Owner name: TIVO SOLUTIONS INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:TIVO INC.;REEL/FRAME:041493/0822

Effective date: 20160908

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: TIVO SOLUTIONS INC., CALIFORNIA

Free format text: RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT;REEL/FRAME:051109/0969

Effective date: 20191122