This invention pertains generally to televisions, and more particularly to televisions with the capability to run Java applications and applets or similar routines.
The television marketplace is a marketplace where many people in the same geographical region have different language preferences. Accordingly, televisions are typically sold with multilingual menu systems, and provide an on-screen menu that allows the user to select menus in one of several supported languages (such as English, Spanish, and French for the North American market). Many broadcasts have a main audio channel in a primary language and also contain one or more SAPs (Secondary Audio Programs) in secondary languages, and/or provide closed captioning in one or more languages. A television with the ability to decode these additional audio/text streams can be adjusted to a user's viewing preferences for audio channel and caption channel. The entry of digital video into the marketplace has, if anything, increased the available language possibilities.
The embodiments may be best understood by reading the disclosure with reference to the drawing, wherein:
The television embodiments described herein have an enhanced language configuration capability. A typical television allows one language setting for all menus and on-screen display messages, a single audio channel selection that is retained as a user moves between channels, and a single caption setting that is retained as a user moves between channels. The embodiments described below remove one or more of these restrictions, allowing a user to associate particular language preferences with individual: menus, applets, broadcast channels, or media selections. In some embodiments, individualized settings can be stored in nonvolatile memory and then later retrieved to automatically adjust audio and/or text to a user's preferences.
One use of the present invention is with a television that allows a user to run a variety of Java applets such as media and applet browsers, media players, timers, messaging, personal video recorders (PVRs), and games. When used with such a television, embodiments of the present invention can allow users to tailor selected applets to use other than the default language settings, with all others using the global default setting.
An applet or application can also be used in some embodiments to examine the television's current media source, channel, or program and determine from a stored list whether the user has audio/captioning preferences for that source, channel, or program different from the default settings. If different settings have been saved for that source, channel, or program, the different settings can be automatically made when the user tunes to that source, channel, or program. Thus some channels that are primarily broadcast in a foreign language can be set to SAP and English closed-captioning for an English-speaking user. Or, if a DVD device is integrated with or controllable from the television, the DVD device language preferences can be saved for individual DVDs. Similar preferences can be set on a by-program basis, either for broadcast programs or programs saved as media files on a media storage device. The applet can also observe a user's individual setting preferences and save them automatically without further input from the user.
A television processor 106 provides basic control functions and viewer input interfaces for television 100. Television processor 106 receives viewer commands, both from buttons located on the television itself (TV controls) and from a handheld remote control unit (not shown) through the IR Port. Based on the viewer commands, television processor 106 controls an analog tuner/input select section 108, and also supplies user inputs to the digital video/graphics processor 120 over a Universal Asynchronous Receiver/Transmitter (UART) command channel. Television processor 106 is also capable of generating basic On-Screen Display (OSD) graphics, e.g., indicating which input is selected, the current audio volume setting, etc. Television processor 106 supplies these OSD graphics, when activated, as a TV OSD signal to LCD panel driver 104 for overlay on the display signal.
Analog tuner/input select section 108 allows television 100 to switch between various analog (or possibly digital) inputs for both video and audio. Video inputs can include a radio frequency (RF) signal carrying standard broadcast television, digital television, and/or high-definition television signals, NTSC video, S-Video, and/or RGB component video inputs, although various embodiments may not accept each of these signal types or may accept signals in other formats (such as PAL). The selected video input is converted to a digital data stream, DV In, in CCIR656 format and supplied to a media processor 110.
Analog tuner/input select section 108 also selects an audio source, digitizes that source if necessary, and supplies that digitized source as Digital Audio In to an audio processor 114 and a multiplexer 130. The audio source can be selected—independent of the current video source—as the audio channel(s) of a currently tuned RF television signal, stereophonic or monophonic audio connected to television 100 by audio jacks corresponding to a video input, or an internal microphone.
Media processor 110 and digital video/graphics processor 120 provide various digital feature capabilities for television 100, as will be explained further in the specific embodiments below. In some embodiments, processors 110 and 120 can be TMS320DM270 signal processors, available from Texas Instruments, Inc., Dallas, Tex. Digital video/graphics processor 120 functions as a master processor, and media processor 110 functions as a slave processor. Media processor 110 supplies digital video, either corresponding to DV In or to a decoded media stream from another source, to digital video/graphics processor 120 over a DV transfer bus.
Media processor 110 performs MPEG (Motion Picture Expert Group) coding and decoding of digital media streams for television 100, as instructed by digital video/graphics processor 120. A 32-bit-wide data bus connects memory 112, e.g., two 16-bit-wide×1M synchronous DRAM devices connected in parallel, to processor 110. An audio processor 114 also connects to this data bus to provide audio coding and decoding for media streams handled by media processor 110.
Dotted line 116 divides the media processor subsystem from the host processor subsystem. Media processor 110 cannot directly access the devices on the right (host) side of dotted line 116. Digital video/graphics processor 120 can access media processor 110 and memory 112 directly, however, and thus indirectly provides connectivity between media processor 110 and flash memory 126 or PCMCIA cards 128.
Digital video/graphics processor 120 coordinates (and/or implements) many of the digital features of television 100. A 32-bit-wide data bus connects memory 122, e.g., two 16-bit-wide×1M synchronous DRAM devices connected in parallel, to processor 120. A 16-bit-wide system bus connects processor 120 to media processor 110, an audio processor 124, flash memory 126, and ports for removable PCMCIA cards 128. Flash memory 126 stores boot code, configuration data, system executable code, and Java code/class files for graphics applications and applets, etc.
Removable device ports for PCMCIA cards 128 can provide extended media and/or application capability for the television, such as the Java applets or stored media files mentioned herein. In some embodiments, the removable device port comprises one or two PCMCIA (Personal Computer Memory Card International Association) PC card ports. The PC card and its ports are described in a series of standards dating back to the 1980s—see, for instance, PC Card Standard 8.0 Release—April 2001. The PC card interface was developed for laptop computers and other computers that do not provide the large internal card bays (e.g., for Peripheral Component Interconnect cards) of desktop and tower servers. PC cards manufactured today provide Ethernet network interfaces, modems, wireless network interfaces (e.g., IEEE 802.11x), mass storage with micro disk drives or flash memory (CompactFlash), and CompactFlash adapters for other flash formats such as Memory Stick, MultiMedia Card, Secure Digital, SmartMedia, and XD. In some embodiments, applets or media files can be provided to the television by loading the applets or media files to a mass storage device, e.g., from a computer, or purchasing a mass storage device with the applets or media files preloaded, and then connecting the mass storage device to the PC card port. Alternately, with a wireless network interface card inserted in the PCMCIA port, applets or media files stored on a personal computer on the same wireless network can be accessed at the television. Additionally, the television may accept and support other PCMCIA-compatible devices.
Digital video/graphics processor 120 can pass data from the DV Transfer bus to LCD panel driver 104 as is, but processor 120 can also supercede, modify, or superimpose the DV Transfer signal with other content. For instance, processor 120 can generate Java application/applet graphics that overlay or supercede the DV Transfer signal, system graphics that display messages over all underlying content, or decode media from PCMCIA cards 128, e.g., in a “time-shifting” mode where media processor 110 is coding a program to the PCMCIA card and processor 120 decodes and displays a time-shifted version of the same program, allowing the viewer to pause, rewind, or skip through the program.
Multiplexer 130 provides audio output to the television amplifier and line outputs (not shown) from one of three sources. The first source is the current Digital Audio In stream from analog tuner/input select section 108. The second and third sources are the Digital Audio Outputs of audio processors 114 and 124. These two outputs are tied to the same input of multiplexer 130, since each audio processor is capable of tri-stating its output when it is not selected. In some embodiments, processors 114 and 124 can be TMS320VC5416 signal processors, available from Texas Instruments, Inc., Dallas, Tex.
At system powerup, digital video/graphics processor 120 creates an executable image for itself in memory 122 and for media processor 110 in memory 112. Flash memory 126 stores the elements of this image as default system code for processors 110, 114, 120, and 124. This code includes: a system manager, a Java engine, which may contain any combination of a just-in-time Java compiler, a Java interpreter, or precompiled Java code, and a Java manager that manages Java applets for processor 120; audio codecs for processors 114 and 124; and video codecs for processors 110 and 120. The system manager provides low-level functions for communication with the other devices attached to processor 120, and communicates system events to the Java manager and other processes. The Java engine interprets and executes Java code for the Java manager, and Java applets when applets are loaded.
In some embodiments, individual applets can use language settings that differ from the default language setting. For example, the Java engine can provide a language API 240 that allows an applet (or an applet language manager in Java manager 230) to save language settings (e.g., SaveSettings(AppletID, Settings)) and find previously saved language settings (e.g., SearchSettings(AppletID)). Language API can in some embodiments maintain a language settings file 250 in flash memory 126, as will be explained in detail below.
Several different programming methods can be provided to provide a user interface that allows a viewer to custom-tailor the language settings for a particular applet. In one approach, a global language manager class can be provided in Java manager 230, which contains an application manager class that allows the viewer to manage and launch applets. When the user navigates to an applet in the application manager, one option can enter the language manager and allow the viewer to provide language settings for the selected applet.
Another approach is to provide APIs that an applet can choose to call to allow language setting. Such an API could allow the applet to specify the language options available for that applet, as some applets could have different language options than others.
Each applet can also be responsible for providing its own language user interface and save the setting with the class.
No matter what approach is used to provide language customization,
Some embodiments utilize nonvolatile memory, such as flash memory 126 in
In the description of
When the user tunes a channel, the Java manager can receive a callback notifying it of the channel change. An applet or class can respond to the callback by entering process 600 at node 620 with the channel number as an argument. If an individual entry is returned for the channel, the applet or class can select the audio stream and/or captioning as required to conform to the user's preferences for that channel.
The function need not be associated with every channel, but perhaps with favorite channels accessible through “fast tuning” buttons on the remote.
The same type of function can be used to set which audio stream is recorded when the television is functioning in a PVR (Personal Video Recorder) mode. Language preferences can also be associated with stored media streams, such as those stored on a PVR, a DVD, or a computer accessible by the television.
One of ordinary skill in the art will recognize that the concepts taught herein can be tailored to a particular application in many other advantageous ways. In particular, those skilled in the art will recognize that the illustrated embodiments are selected from many alternative implementations that will become apparent upon reading this disclosure. For instance, although Java applets have been described, the described embodiments can be used with other coding schemes and with any type of television entity that might have multiple language possibilities. Such minor modifications are encompassed within the embodiments of the invention, and are intended to fall within the scope of the claims.
The preceding embodiments are exemplary. Although the specification may refer to “an”, “one”, “another”, or “some” embodiment(s) in several locations, this does not necessarily mean that each such reference is to the same embodiment(s), or that the feature only applies to a single embodiment.
This application claims priority from U.S. provisional patent application Ser. No. 60/535,115 filed Jan. 6, 2004, titled Television with Application/Stream-Specifiable Language Selection, which is incorporated herein in its entirety.
Number | Date | Country | |
---|---|---|---|
60535115 | Jan 2004 | US |