HK1096765B - Multimedia visual progress indication system - Google Patents
Multimedia visual progress indication system Download PDFInfo
- Publication number
- HK1096765B HK1096765B HK07103782.9A HK07103782A HK1096765B HK 1096765 B HK1096765 B HK 1096765B HK 07103782 A HK07103782 A HK 07103782A HK 1096765 B HK1096765 B HK 1096765B
- Authority
- HK
- Hong Kong
- Prior art keywords
- user
- cache
- program
- time
- bar
- Prior art date
Links
Description
The present application is a divisional application of the invention patent application having an application date of 2000, 3 and 30, and an application number of "00808230.8", entitled "multimedia visual playing progress indication system".
Technical Field
The present invention relates to interactive display of audience information in a computer environment. More particularly, the present invention relates to interactive modes and play progress indicators in a computer environment.
Background
Multimedia devices, including VCRs, DVD players, MP3 players, cassette players, CD players, video tape editors, and a new class of Personal Video Recorders (PVRs), are currently in high consumer interest, with at least one such device being in almost every household of the full beauty.
Among these devices, VCRs are the most complained (and laugh) because they are difficult to use and understand. In fact, this complaint situation occurs equally in most multimedia devices.
One of the most lacking elements in convenience of use is an indication of the progress of the program content. VCRs and DVD players generally use "FWD" as fast forward, "REV" as rewind, and "PLAY" as PLAY on the screen to inform the user of the mode they have selected, while other systems inform the user of each mode in their respective display terms or phrases.
In addition, many manufacturers inform users of the progress and location of tape, CD, DVD or MP3 play in a display of numerical counts. For example, a four digit count is displayed on a television screen or dedicated display. The user can tell the direction of media travel by observing whether the counter is increasing or decreasing numerically.
The problem with these approaches is that the multimedia device manufacturer does not use a same user interface, but the display terms, phrases and counts are mostly encrypted. Furthermore, the display of terms, phrases and counts is not intuitive to the general public.
It would therefore be advantageous to provide a multimedia visual play progress indication system that visually displays and conveys the operation and play progress of program content to a user. Furthermore, it would be advantageous to have a system that is easy to standardize and that is suitable for use with any medium.
Disclosure of Invention
The invention provides a multimedia visual playing progress indicating system which transmits information to a user in a simple and intuitive mode. Furthermore, the present invention provides a system that is easy for a user to interact with and independent of the type of media used.
A preferred embodiment of the present invention provides a trick play bar that is overlaid on program content or displayed on a dedicated display. A cache bar is located within the trick play bar indicating the length of the recording period or the length of the stored program content.
The cache bar extends to the right as the program content is being recorded, and moves to the left every half hour (when time is selectable).
The time mark is displayed in the playing time bar, and a visual reference point is provided for a user, so that the current time and the visual reference point are judged. The time stamp has any desired time increment.
The total length of the stored program content, the next time or counter increment for the recording period is displayed on the right end of the trick play bar.
The position indicator moves within the trick play bar and visually informs the user where its current position is within the program content. The cursor moves along the playtime bar and is located on top of the cache bar. The cursor and position indicator are linked together and can be moved by the user to any position within the cache stick. The cursor displays the counter marker for the digital time or current position.
The mode indicator is located below the cursor and moves with the cursor. The mode indicator shows which of the play, record, pause, slow play, fast forward (1, 2 and 3 times), slow backward play, slow reverse and fast reverse (1, 2 and 3 times) modes the user is in. The 1, 2, and 3 speed may be adjusted by the system to any desired speed multiple (e.g., 2, 16, and 32).
The trick play bar and its associated components are displayed for a predetermined period of time while superimposed over the program content.
Other aspects and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example, the principles of the invention.
Brief Description of Drawings
FIG. 1 is a high level block diagram of a preferred embodiment of the present invention;
FIG. 2 is a block diagram of a preferred embodiment of a multiple input and output module utilizing the present invention;
FIG. 3 is a schematic diagram of a Moving Picture Experts Group (MPEG) data stream and its video and audio components according to the present invention;
FIG. 4 is a block diagram of a syntax parser and four Direct Memory Access (DMA) input engines included in a Media Switch (Media Switch) according to the present invention;
FIG. 5 is a schematic diagram of portions of a packet formatted elementary stream (PES) buffer of the present invention;
FIG. 6 is a diagram illustrating the PES buffer structure resulting from the parsed portion of the media switch output circular buffer;
FIG. 7 is a block diagram of the media switch and various portions of the communication therewith in accordance with the present invention;
FIG. 8 is a high level block diagram of the program logic of the present invention;
FIG. 9 is a block diagram illustrating class hierarchy distribution of program logic according to the present invention;
FIG. 10 is a block diagram of a preferred embodiment of a clipping cache device according to the present invention;
FIG. 11 is a block diagram of a preferred embodiment of a broadcast studio video mixer in accordance with the present invention;
FIG. 12 is a block diagram of a closed caption parser in accordance with the present invention;
FIG. 13 is a high level block diagram of a preferred embodiment of the present invention utilizing a VCR as an integrated component of the present invention;
FIG. 14 is a diagram of a remote control of the present invention;
FIG. 15 is a high level block diagram of a preferred embodiment of the present invention illustrating viewer interface module interaction in accordance with the present invention;
FIG. 16 is a schematic view of a central menu screen of the present invention;
FIG. 17 is a schematic view of a program form screen of the present invention;
FIG. 18 is a schematic view of a detailed program information screen of the present invention;
FIG. 19 is a schematic view of a detailed program information screen of the present invention;
FIG. 20a is a schematic illustration of a mini-title of the present invention displayed on program content;
FIG. 20b is a diagram of a medium title of the present invention displayed on program content;
FIG. 20c is a diagram of a detailed title displayed on program content in accordance with the present invention;
FIG. 21 is a schematic view of a list of recommended programs for viewing screen according to the present invention;
FIG. 22 is a diagram illustrating a network list screen according to the present invention;
fig. 23 is a diagram of a program theme list screen of the present invention;
FIG. 24 is a schematic view of a todo list screen of the present invention;
FIG. 25 is a schematic view of a conflict alert screen of the present invention;
fig. 26 is a schematic diagram of a trick play time bar of the present invention overlaid on programming material;
fig. 27 is a schematic diagram of a trick play time bar and associated components of the present invention;
FIG. 28 is a diagram of two columns of multimedia scheduling screens according to the present invention;
FIG. 29 is a schematic illustration of two columns of topic-based scheduling screens of the present invention;
FIG. 30 is a schematic illustration of two columns of topic-based scheduling screens of the present invention;
FIG. 31 is a schematic illustration of two columns of topic-based scheduling screens of the present invention;
FIG. 32 is a schematic illustration of a two column program schedule screen in accordance with the present invention;
fig. 33 is a schematic diagram of a two column program schedule screen of the present invention showing the program duration indicators of the present invention.
Detailed Description
The invention particularly provides a multimedia playing progress visible indication system in a computer environment. The system proposed by the invention delivers information to the user in a simple and intuitive way. In addition, the system provided by the invention can enable the user to easily interact with the system, and is not related to the media type.
In a preferred embodiment of the present invention, a trick play bar and associated components are provided that convey system operation and progress through media content. The presentation of the trick play bar and its associated components may be by a dedicated display (e.g., LCD, LED, plasma) or may be superimposed on the program content displayed on the television or monitor.
Referring to fig. 1, a preferred embodiment of the present invention is shown, which includes an input module 101, a media switch 102 and an output module 103. The input module 101 is used for receiving Television (TV) input streams, which may be in various forms, such as ntsc (national Television standard committee) or PAL broadcasting; or in digital form, such as DSS (digital Satellite systems), DBS (digital Broadcast services) or ATSC (advanced Television standards committee), where DBS, DSS and ATSC are based on the moving picture experts group 2(MPEG2) and MPEG2Transport standards, where the MPEG2Transport standard is a standard that formats a digital data stream obtained by a Television source transmitter so that a Television receiver can scatter the input stream to find program content in a multiplexed signal. The input module 101 can form an MPEG data stream. The MPEG2transport multiplexer supports the feeding of multiple programs, including multiple types of video, audio and private data, on the same broadcast channel. The input module 101 tunes the channel to a particular program, extracts a particular MPEG program from it, and sends it to the rest of the system. Analog television signals are encoded into an MPEG-like format using separate video and audio encoders, so the rest of the system does not know how the signal was acquired. Information may be modulated into the Vertical Blanking Interval (VBI) of an analog television signal in a number of standard ways, for example, nabts (north american broadcast television standard) may be used to modulate information on lines 10 to 20 of an NTSC signal, whereas FCC requires the use of line 21 for Closed Caption (CC) and Extended Data Services (EDS). These signals are decoded by the input module and transmitted to other components as if they were transmitted via the MPEG2 private data channel.
The media switch 102 is located between the microprocessor CPU106, the hard disk or storage device 105, and the memory 104, and the input stream is converted into an MPEG stream before being sent to the media switch 102, and the media switch 102 sends the MPEG stream to the memory. Then, if the user is watching tv in real time, the media switcher 102 performs two operations: the MPEG stream is sent to the output module 103 and simultaneously written to the hard disk or storage device 105.
The output module 103 takes the MPEG stream as an input signal and forms an analog tv signal according to NTSC, PAL or other desired tv standards. The output module 103 includes an MPEG decoder, an On-Screen Display (OSD) generator, an analog television encoder, and audio logic. Wherein the OSD generator enables the program logic to provide an image that will be superimposed on top of the resulting analog television signal. In addition, the output module may modulate information provided by the program logic onto the VBI of the output signal in a variety of standard formats, including NABTS, CC, and EDS.
Referring to fig. 2, it can be seen that the present invention can be easily extended to have a plurality of input modules (tuners) 201, 202, 203, 204, wherein each input can be written as a different type of input. Likewise, a plurality of output modules (decoders) 206, 207, 208, 209 may be added. Special effects of a screen picture, such as adding an image to an image, can be achieved with multiple decoders. The media switch 205 may record a program while the user is watching another program, i.e., may retrieve a stream from the hard disk while another stream is being stored in the hard disk.
Referring to fig. 3, the incoming MPEG stream 301 has interleaved video 302, 305, 306 and video 303, 304, 307 portions, which must be separated and reassembled to obtain separate video 308 and audio 309 streams or buffer portions. This is necessary because separate decoders convert the MPEG elements back into audio or video analog components. Such separate transmissions require the generation of time series information to properly synchronize the decoders for proper playback of the signal.
The media switch drives the program logic to associate appropriate time series information with each video or audio segment, possibly embedding it directly into the data stream. The time series of each video or audio segment described above is referred to as a time stamp, which increases monotonically and starts from zero at each system start-up. This allows the present invention to find any particular point in any particular video segment. For example, if the system needs to read five seconds of content into the incoming continuous video stream being cached, the system simply reads forward into the stream and looks for the appropriate time stamp.
A binary search may be performed on the stored file to index the information stream. Each stream is stored as a series of fixed size segments enabling fast binary search due to the uniform distribution of the time stamps. If the user wants to start with the middle of the program, the system performs a binary search of the stored segments until they find a suitable point, with the minimum amount of information to obtain the desired result. If the signal is stored as an MPEG stream, the search for the desired position must be done linearly with the MPEG stream from its beginning.
Please refer to fig. 4. The media switch is shown to include four input Direct Memory Access (DMA) engines 402, 403, 404, 405, each with its associated buffer 410, 411, 412, 413. Conceptually, each DMA engine has a pointer 406, a limit 407 for the pointer, a next pointer 408, and a limit 409 for the next pointer, and each DMA engine is dedicated to processing certain information, such as the processable video 402, audio 403, and parsed events 405. The buffers 410, 411, 412, 413 are circular and are used to collect these specific information. The DMA engine increments the pointer 406 to its opposite buffer until its value reaches the limit 407. The DMA engine then reloads the next pointer 408 and its limit 409. When the pointer 406 and the next pointer 408 are set to the same value and their corresponding limit values, a circular buffer is generated. In addition, the next pointer 408 may be set to a different address to provide vector DMA.
The input stream first enters a parser 401 which the parser 401 parses, looking for MPEG distinguishing events, indicating the start of video, audio or private data sections. For example, when parser 401 finds a video event, the input stream is passed to video DMA engine 402. The parser 401 buffers the data and DMA up through the video DNA engine 402 to the video buffer 410. At the same time, the parser 401 sends an event to the event DMA engine 405, which generates an event into the event buffer 413. When the parser 401 sees an audio event, it sends the byte stream to the audio DMA engine 403 and generates an event to its event buffer 413. Similarly, when parser 401 sees a private data event, it streams bytes to private data DMA engine 404 and sends an event to its event buffer 413. When the event is in the event buffer, the media switch notifies the program logic using an interrupt mechanism.
Please refer to fig. 4 and 5. The parser 401 fills the event buffer 413 with events, where each event 501 in the event buffer has an offset 502, an event type 503, and a time stamp field 504. When each event is in the buffer, parser 401 provides its type and offset. For example, when an audio event occurs, the event type field is set to an audio event and the offset indicates the location of the event in the audio buffer 411. The program logic itself knows where the audio buffer 411 starts and increments the offset to look for the event in the stream. Address offset 502 can tell the program logic where the next event will occur, but does not tell where the next event ends. The previous event is already cached so the end of the current event and the length of the event section can be found.
Please refer to fig. 5 and 6. When the program logic is interrupted by the media switch 601, the program logic reads the events accumulated in the event buffer 602. From these events, the program logic generates a series of logical sections 603, these logical sections 603 corresponding to the parsed MPEG sections 615. Program logic translates the offset 502 into the real address 610 for each segment and records the event length 609 with the last cached event. If the stream is generated by encoding an analog signal, the stream does not contain Program Time Stamp (PTS) values, but the stamp values are used by the decoder to render the final output appropriately. Thus, program logic calculates the simulated PTS results for each segment using the generated time stamp 504 and places the results in the logical segment time stamp 607. If the stream is a digital television stream, then the PTS values are already encoded in the stream and the program logic fetches the PTS information and places it in the logical sector timestamp 607.
Program logic continues to collect logical sectors 603 until a fixed buffer size is reached. When the buffer size is reached, program logic generates a new buffer (called Packetized Elementary Stream (PES)605) buffer, which in turn contains these logical segments 603 and supplemental control information. Each logical sector 604 points directly to a circular buffer (e.g., video buffer 613), which is filled by the media switch 601. The new buffer is then sent to other logic and the flow of information in the buffer continues to be processed in some manner, such as decoding it or writing it to a storage medium. Therefore, the processor does not copy the MPEG data from one location of the memory to another, so the required memory bandwidth and processor bandwidth are lower, and the cost of the design is lower.
Furthermore, one unique feature of MPEG streaming into PES buffers is that the data associated with the logical segments does not need to be present in the buffers themselves, as previously described. When the PES buffer is written to storage, the logical segments are written to the storage medium in the logical order in which they appear. This has the effect of aggregating portions of the stream, whether the stream portions are in a video, audio or private data circular buffer, into a single linear buffer of the stream in the storage medium. When the buffer is read back from the storage medium, the required transfer is only once; the logical sector information is updated to correspond to the location in the buffer 606. Higher level program logic is not aware of this transformation because it only processes logical sectors and therefore easily processes data streams without the need for the CPU to copy the data in the DRAM to another location.
One unique aspect of the media switch is the ability to handle high speed data streams in an efficient and cost effective manner. The media switch performs tasks including bringing in video and audio data, sending out video and audio data, sending video and audio data to the disc, and taking out video and audio data from the disc on a low-cost platform. Generally, the media switch and microprocessor CPU operate in an asynchronous and independent manner, taking advantage of their DMA capabilities to move large amounts of information with minimal CPU involvement.
Please refer to fig. 7. As shown, the input side of the media switch 701 is connected to an MPEG encoder 703. In addition, there are MPEG audio 704 and VBI data 702 dedicated circuits fed into the media switch 701. If the digital television signal is processed, the MPEG encoder 703 is replaced by an MPEG2transport demultiplexer, and the MPEG audio encoder 704 and VBI decoder 702 are deleted, the demultiplexer multiplexes the extracted audio, video and private data channel streams through a video input media switch.
The parser 705 parses the incoming data streams from the MPEG encoder 703, the audio encoder 704, and the VBI decoder 702; in the case of digital television streams, the object of the parsing is the data stream output by the transport demultiplexer. Parser 705 detects the start of all important events in the audio or video stream, the start of all frames, the start of the sequence headers and all segments of information that the program logic needs to know about, regarding the appropriate play and special effects to the stream, such as fast forward, rewind, play, pause, fast/slow play, seek and fast/slow reverse play.
When parser 705 recognizes that the message is video, audio segment, or private data, tag 707 is placed in first-in-first-out (FIFO) device 706; DMA709 can control the fetch time of these tags; the tag 707 and the DMA address of the sector are placed in an event queue 708. Various frame types and associated circular buffers, where the information is placed, are placed in the event queue 708, where the frame type information may be the start of a video I-frame, video B-frame, video P-frame, video PES, audio PES, sequence header, audio frame, or private packet. After being sent to the DRAM, program logic in the Central Processing Unit (CPU)713 checks for events in the circular buffer.
Media switch 701 interfaces with CPU713 and DRAM714 via data bus 711. The address bus 712 is shared by the media switch 701, the CPU713, and the DRAM 714. The hard disk or storage device 710 is connected to one of the ports of the media switch 701. The media switch 701 outputs the information streams to an MPEG video decoder 715 and a separate audio decoder 717. Audio decoder 717 signals include system-generated audio, i.e., audio generated by the system in response to a user's remote control or other external event. The decoded audio output by the MPEG decoder is digitally mixed 718 with a separate audio signal, the resulting signal containing video, audio and on-screen display, which is sent to the television 716.
The media switch 701 receives 8-bit data and sends the data to the disk, while another data stream is taken from the disk and sent to the MPEG decoder 715. All of the above DMA engines can be used simultaneously. The media switch 701 may be implemented in hardware using a Field Programmable Gate Array (FPGA), ASIC, or discrete logic.
Rather than having to parse a large number of data streams to find the beginning of each frame, program logic simply looks at the circular event buffer in DRAM714, the beginning and type of each frame being known. This approach saves a lot of CPU power, has less real-time demand on CPU713, CPU713 need not be very fast at any time, and media switch 701 gives CPU713 as much time as possible to complete the task. The presence of parsing mechanism 705 and event queue 708 eliminates the need for CPU713 to parse the real-time characteristics of the audio, video, buffers, and data streams, thereby reducing cost. Furthermore, this allows the use of bus structures in a CPU environment, working with much cheaper memories at clock rates that may be much lower than required.
CPU713 has the ability to queue one DMA transfer and is able to prepare for the next DMA transfer when it is idle. This gives CPU713 a significant time interval during which it can service DMA controller 709. The CPU 713's response to the DMA interrupt may be for it in a larger time window because it may service more potential DMA requests. MPEG streams taken from MPEG2Transport or encoded with analog electrical video signals are typically encoded in what is known as Variable Bit Rate (VBR) encoding. This encoding can vary the amount of data used to represent a sequence of pictures by exploiting the principle of the amount of movement between the pictures. This encoding approach greatly reduces the required bandwidth of the signal, but fast moving image sequences (such as rod racing) may require a greater bandwidth when encoded. For example, the Hughes direct TV satellite system adds a bandwidth of 1 to 10Mb/S to all signals, and this bandwidth varies from frame to frame. At this time, it is difficult for all computer systems to keep up with this rapidly changing data rate without such a structure.
Please refer to fig. 8. There are three conceptual portions of program logic in the CPU, a source portion 801, a conversion portion 802, and a sink portion 803. Wherein a source portion 801 is used to form a buffer of data, a conversion portion 802 is used to process the buffered data, and a sink portion 803 is used to use the buffered data. The conversion section operates to reorder and arrange the data thereon, wherein the buffer is reordered to an "empty" format for the data source, which returns the buffer to a "full" state. The buffer is then queued up and sent to the sink portion in a "full" state.
The source portion 801 is used to receive data output by an encoder, such as a digital satellite receiver, which requires buffers to hold the data of the downstream conversion portion, to pack the data into a buffer, and then to push the buffer down the pipeline in the manner described above. The source object 801 does not know what happens to the rest of the system, the sink portion 803 consumes the buffer, takes a buffer from the upstream conversion portion, sends the data to the decoder, and then frees the buffer for reuse.
The conversion portion 802 used has two types, namely spatial conversion and temporal conversion. The spatial conversion is to perform image convolution processing or compression/decompression processing on the passing buffered data; the time transition is used when there is no representable time relationship between the buffers entering the system and the buffers leaving the system, the transition writes the buffers to a file 804 on the storage medium and later pushes the buffers out, down the pipeline and properly arranged in the data stream.
Referring to FIG. 9, a C + + class hierarchy schematic of program logic is shown. The TiVo media cores (Tmk)904, 908, 913 mediate with the operating system core and provide operations such as memory allocation, synchronization, and threading. Tmk the cores 904, 908, 913 have memory constructs from the media core as an object and provide operators (new and deleted) for building and breaking the object, each object (source portion 901, conversion portion 902 and sink portion 903) being multi-threaded by definition and capable of running in parallel.
The TmkPipeline stages 905, 909, 914 are responsible for data flow control in the system and are directed to the next pipeline of data flow from the source portion 901 to the sink portion 903. If the pipeline is paused, an event called "pause" may be sent to the first object in the pipeline, which is then relayed to the next object, and so on down the pipeline. These transfers are not synchronized with the data flowing through the pipeline, so the control of the MPEG stream is not synchronized and separate from the MPEG stream itself, as is typical in telephony. This allows the same time for a simple logic design, sufficient to support the aforementioned features, such as pause, rewind, fast forward, etc. In addition, this arrangement also allows for fast and efficient switching between the sources of the data streams, since buffered data can simply be discarded, and the decoder reset with a single event, after which the data in the new data stream can be pipelined. This ability to switch quickly is necessary, as is required for switching of channels being captured by the input module, or switching between live signals of the input module and stored data streams.
The Source object 901 is Tmk Source906 and the conversion object 902 is Tmk Xfrm910, both of which are intermediate levels that define the standard behavior of each level in the pipeline. Conceptually, the two exchange buffer data in the pipeline, where the source object 901 takes data from the physical data source (e.g., from the media switch) and places the data in a PES buffer. To get the buffer, the source object 901 requests a buffer (allocastybuf) from the downstream object of its pipeline. The source object 901 is blocked when there is insufficient memory, which means that the pipeline is self-coordinating, i.e. the pipeline has its automatic flow control. When the source object 901 has filled the buffer, the buffer is sent to the conversion section 902 through the pushFullBuf function.
The sink portion 903 is also controlled on the data stream which calls nextFullBuf, which tells the transition portion 902 to be ready for the next filled buffer, which can block the sink portion 903 until the buffer is ready. When the sink portion 903 has completed processing the buffer (i.e., the data for the buffer has been dissipated), a releaseEmptyBuf is called, which returns the buffer to the conversion portion 902. Then, the conversion section 902 may hand over the buffer back to the source object 901 or the like, and fill the buffer. The method, in addition to the advantage of automatic control of the data stream, also limits the dedicated memory size of the buffer by performing a buffer rearrangement by switching, thus achieving memory saving in a limited DRAM environment.
The media switch hierarchy 909 calls the allocEmptyBuf method of the TmkClipCache912 object and receives the PES buffer from it. The TmkClipCache912 object then exits to a circular buffer in the media switch hardware and generates a PES buffer. The media switch hierarchy 909 then fills the buffer and advances the buffer back to the TmkClipCache912 object.
The TmkClipCache912 maintains the cache file 918 on the storage medium, and also has two pointers to the cache file: a push pointer 919 showing the insertion location of the next buffer from the source part 901, and a current pointer 920 pointing to the currently in-use buffer.
The buffer pointed to by the current pointer is sent to the Vela decoder stage 916, which talks to the hardware decoder 921. Decoder 921 forms a decoded television frequency number that is in turn encoded into an analog television signal in NTSC, PAL, or other analog format. When the Vela decoder stage 916 finishes processing the buffer, a releaseEmptyBuf is called.
The hierarchy structure allows the system to be easily tested and debugged, and each hierarchy can be independently tested to determine if the hierarchy is functioning properly. These levels can be gradually aggregated to achieve the desired functionality while still maintaining effective test functionality for each object.
The control object 917 receives user commands and sends events into the pipeline to control what the pipeline is doing. For example, if the user presses the pause key on the remote controller while watching tv, the control object 917 sends an event to the sink portion 903 informing it of the pause. The sink portion 903 stops requesting new buffers and the current pointer 920 stops at the current location of the sink portion 903. When the sink portion 903 receives an event again, which is indicated as play-back, the buffer is again taken out. The system is in full synchronization, i.e. starting from the stopped frame.
The remote controller may also have a fast forward key. When the fast forward key is pressed, the control object 917 sends an event to the transition 902 telling it to move forward for two seconds. The transition portion 902 finds that moving 3 buffers forward is required for two seconds, and issues a reset event downstream in the pipeline, flushing all data or state queued for presentation in the hardware decoder. This is a critical step because the MPEG stream structure maintains a state on the data of multiple frames that is not valid for repositioning the pointer. Next, the conversion portion 902 moves three buffers forward, and then the sink portion 903 calls nextFullBuf, declaring a new current buffer. This method is equally applicable to the fast reverse mode as long as the converting portion 902 moves the current pointer 920 backward.
There is a system clock reference in the decoder, which is accelerated in fast-play and decelerated in slow-play. Depending on the clock speed, the sink portion requires the entire buffer to be faster or slower.
Referring to FIG. 10, two other objects from the TmkXfrom hierarchy are placed in the pipeline for disk access, one called TmkClipReader 1003 and the other called TmkClipWriter 1001. The buffer enters TmkClipWriter1001 and is pushed to the file on storage medium 1004, while TmkClipReader 1003 requests the buffer to be fetched from the file on storage medium 1005. TmkClipReader 1003 provides only alloEmptyBuf and PushFullBuf methods, while TmkClipWriter1001 provides only nextFullBuf and relesaEmptyBuf methods. Thus, the TmkClipReader 1003 performs a function such as inputting or "pushing" the TmkClipCache1002 side, and the TmkClipWriter1001 performs a function such as outputting or "pushing" the TmkClipCache1002 side.
Referring to FIG. 11, a preferred embodiment for implementing multiple functions is shown. The source 1101 has an incoming television signal and the source sends the data to pushswitch 1002, which is a transition derived from TmkXfrm. Push switch (PushSwitch)1102 has multiple outputs and can be switched by control object 1114. This means that one part of the pipeline can be stopped while another part is started. The user can switch to a different storage device. PushSwitch1102 can output to TmkClipWriter1106, which proceeds to storage 1107 or write to cache translation 1103.
An important feature of the apparatus is that it facilitates the selective capture of certain portions of the input signal under the control of program logic; i.e., based on information such as the current time, perhaps for a particular time span or by the viewer pressing a remote control button, the TmkClipWriter1106 may be turned on to record a portion of the signal and then turned off at a later time. Generally, this switching action is accomplished by sending a "switch" event to the PushSwitch1102 object.
An additional method of triggering selective capture is by modulating the information into a VBI or placing it in an MPEG private data channel. The data decoded from the VBI or private data channel is passed to program logic which then examines the data to determine whether the data indicates that capture of the modulated television signal should begin. Likewise, the information may also indicate when the recording is finished, or another data item may be modulated into a signal indicating when the capturing is finished. The start and end indicators may be explicitly modulated into the signal or other information placed into the signal in standard form may be used to encode the information.
Please refer to fig. 12. An example is shown of how program logic scans the words contained in the Closed Caption (CC) field to determine the start and end times using a particular word or phrase to trigger capture. A series of NTSC or PAL fields 1201 are shown, with CC bytes taken from each odd field 1202 and fed to a circular buffer 1203 for processing by a Word Parser unit (Word Parser) 1204. The word analysis unit 1204 collects characters until a word boundary is encountered, typically a space, interval, or other boundary character, etc. The MPEG audio and video segments are collected into a series of fixed size PES buffers, as described above, and a special segment is added to each PES buffer to hold the word fetched from the CC field 1205. Therefore, the CC information is given in time synchronization with the audio and video and can be correctly presented to the viewer when the data stream is displayed. The design can enable the program logic to process the CC information of the data flow in storage at idle time, expand the load capacity, reduce the cost and improve the efficiency. At this point, the words stored in the special section are sent to the state table logic 1206.
At data stream capture, each word is viewed in table 1206 to indicate an action to confirm the word. This action may simply change the state of the recognizer state machine 1207, or cause the state machine 1207 to issue an action request, such as a "start capture," a "stop capture," a "phrase see," or other similar action request. In practice, a recognized word or phrase may cause the pipeline to be switched, for example if a different channel is overlaid in the program using a language other than the intended language.
Note that the analysis state table 1206 and the recognition state machine 1207 may be changed or altered at any time. For example, a different table and state machine may be provided for each input channel. In addition, these elements may be switched based on time of day or due to other events.
Please refer to fig. 11. A PullSwitch1104 is added to the figure, which outputs to a sink 1105. The sink portion 105 calls nextFullBuf and releaseEmptyBuf, getting from PullSwitch1104 or sending back to the buffer, PullSwitch1104 may have any number of inputs, one of which may be an ActionClip 1113. The remote control may switch between the input sources. The control object 1114 sends an event to the PullSwitch1104 telling it to switch, which will switch from the current input source to whatever input source the control object selected.
The ActionClip hierarchy can provide sequencing of a variety of different stored signals in a controllable and predictable manner, which can be controlled by the viewer via a remote control. Thus, the ActionClip hierarchy accepts a "switch" event to switch to the next store signal, just like a derivative of the TmkXfrm object.
The design allows program logic or the user to set the video output order, and the number of video segments that can be ordered and combined is arbitrary, as is the program logic or the user using the broadcaster video mixer. TmkClipReaders1108, 1109, 1110 are assigned, each interfacing with PullSwitch 1104. PullSwitch1104 switches between TmkClipReaders1108, 1109, 1110, combining video and audio clips. The process control is automatic because of the method of pipeline construction. Push and pull switches (Push and Push switches) are the same as the video switcher in the broadcaster.
The derived hierarchies and generated objects described above can be combined in any manner to form a variety of different useful configurations, such as storage, retrieval, switching and viewing of television data streams. For example, if there are multiple input and output modules, one input is viewed while another input is stored, and a picture-in-picture window formed with the second input is used to preview the previously stored information stream. This configuration represents a unique and novel application of software conversion to implement the functionality of a high cost, complex hardware solution in a single low cost device.
Please refer to fig. 13. A high-level system that implements VCR backup is shown. The output module 1303 sends the video signal to the VCR1307 for the user to record the television program directly on the video tape. The present invention allows the user to queue the program for recording from the disk to the video tape and schedule the program for delivery to the VCR 1307. The title page (EPG data) may be sent to the VCR1307 before the program is sent, and longer programs may be adjusted by increasing the speed of play or dropping some frames to fit on smaller tapes.
The output of the VCR1307 may also be returned to the input module 1301. In this configuration, the VCR acts as a backup system for the media switch 1302, and any programs that store excess data or have a lower priority are sent to the VCR1307 for later retrieval.
The input module 1301 may decode the information encoded on the VBI and send it to other parts of the system. The output module 1303 can encode output VBI data provided by other parts of the system. Program logic may encode various identification information into the output signal that will be recorded onto videotape using VCR 1307. Playing the video tape back to the input allows the program logic to read back the identification information so that the video signals recorded on the video tape are properly processed. For example, a particular program may be recorded in a video tape along with information on when it was recorded, the source network, etc. When the program is played back to the input module, the information can be used to control the storage of the signal and the presentation to the viewer.
Those skilled in the art will appreciate that this mechanism may be used to introduce a variety of different data items into program logic that has not been properly treated as an electronic video number. For example, software update data or other data may be sent to the system. The program logic may control the manner in which the data is processed as it is received from the television data stream, such as by requiring a particular authentication sequence to be shown and/or decrypting the embedded information based on a previously obtained key. This approach can also be used for general broadcast signals and becomes an efficient means of providing non-television control information and data to the program logic.
Further, it will be understood by those skilled in the art that although the above is specifically described with respect to a VCR, it may be used on a variety of multimedia recording devices, such as digital video disk-random access memory (DVD-RAM).
It will be appreciated by those skilled in the art that the above description may be applied to other applications without departing from the spirit of the present invention. For example, the present invention may be used in the detection of electronic casino crimes, where the input module of the present invention is connected to the casino's video surveillance system and the recorded video is cached and simultaneously output to an external VCR. The user can switch to any of the videos and check (i.e., rewind, play, slow play, fast forward, etc.) for a particular portion of the recorded image while the external VCR is loading real-time input video.
Please refer to fig. 1 again. The preferred embodiment of the present invention provides an audience interface that allows the audience to use the various features of the system. The architecture of the system allows items called loop segments of video tape to be stored on the hard disk or storage device 105. The video tape loop segments enter the input module 101 of the system through the input stream and are converted to MPEG stream by the media switch 102 and placed in the storage device. In addition, the video loop segments are also streamed into the system as an MPEG stream (via a back channel, VBI, transmission media, etc.), bypassed by the input module 101, and written to the storage device 105 by the media switch 102.
The viewer interface program logic (executed by CPU 106) instructs the media switch 102 to retrieve a circular segment of video tape from storage 105, the circular segment of video tape being three to four seconds of video tape (which may be longer, depending on the amount of information played), so that the end and beginning of the video are seamlessly merged together, and the system gets a continuous streaming effect as it plays the circular segment of video tape from beginning to end, i.e., the beginning of the circular segment of video tape is followed each time the end is reached. As described above, the output module 103 takes the MPEG video loop clip stream as its input and forms an analog TV signal according to NTSC, PAL or other desired TV standard, wherein the OSD generator of the output module 103 causes the program logic to place text or pictures on top of the formed analog TV signal.
Fig. 7 shows a lower level description of the system. In the figure, the CPU713 informs the media switch 701 to retrieve a particular loop segment of the video tape from the storage device 710 and to send it to the MPEG decoder 715. The on-screen image is created by CPU713 and fed through an OSD generator into digital mixer 718. The digital mixer 718 can mix the video loop segments, screen images, and audio and send the result to the television or monitor 716.
The viewer interface of the present invention interacts with user input using an input device, which may be a remote control as shown in FIG. 14, for example. Referring to fig. 15, user commands are processed through the control input module 1504; the viewer interface 1503 processes the input command; the appropriate command is sent to the media controller 1501 (e.g., to display a video loop fragment); the display of the screen is formed by the viewer interface 1503 and communicated through the output module 1505 as described above.
When a viewer using such a remote 1401 depresses the TiVo key 1401, the viewer interface displays a menu as shown in fig. 16, where the TiVo center 1601 is centrally located, containing a list of areas that the viewer can view, which can be easily acted upon by depressing a single key on the remote.
The viewer interface displays a video loop segment in a background area of the screen on the television or monitor, where the character 1602 shown in the upper left position of the screen is another different video loop segment. The video loop segment of the character gives the character 1602 a more vivid picture, with the goal of having the viewer feel the character animated, the character's haptic movement, the character's foot jumping from side to side. Each component on the screen may be a separate video loop segment, and the color-fading text 1603 loop segment rotates the text in a title-like manner from the right to the left of the screen, while the rest of the background is in another video loop segment. However, if necessary, the entire background display may also be expressed in a video loop segment. The design of the video loop segments frees the CPU from the task of extracting continuous animation, and the load on the CPU is reduced when the system plays these video loop segments in the same way as any other MPEG stream is played. In addition, the design of video loop segments is a cost effective way to display high definition images.
Any transient event (e.g., name, cursor, position indicator, etc.) can be drawn on-screen through a video loop segment using the OSD, and a menu option 1604, such as Now show, can be sent through the video loop segment. In the illustration, a highlight bar 1605 is used to indicate the current menu options that may be selected by the user.
The highlight bar may be displayed using a video loop segment. In the illustration, the highlight bar 1605 appears to be sent directly to the screen, but is actually a video loop segment. Each time the user presses a key 1403 on the remote control to move the position of highlight bar 1605, the appropriate video loop segment is selected for that position.
In addition, the highlight bar 1605 can be sent to the screen through a video loop segment in the same manner as a transient option.
The information appears on the screen in a continuous display format. The user may navigate through the menu, i.e., move to the right (pressing the right side of key 1403 on the remote control) to get more information, or move to the left (pressing the left side of key 1403 on the remote control) to see less information and return to the original position. The select key 1404 is used to select a menu option and may cause the appropriate action to be performed.
The background of each set of menus is known to be fixed after use by the user. For example, the background screen color of the Now watching is amber/yellow, while the background screen color of the Now watching is purple, and the user can quickly know which option is currently in by color.
Please refer to fig. 14, 16 and 17. The present invention provides "hinted arrows" 1706, 1707, 1708, 1709 on the screen to inform the user that there is more information in the direction in which they are pointing. These arrows include an up arrow 1709, a down arrow 1707, a left arrow 1708 and a right arrow 1706. Wherein the right pointing arrow 1706 indicates to the user that more information is to be used when pressing the right side of the key 1403 on the remote control 1401 and the left pointing arrow 1708 indicates to the user that more general level detail data is to be used when pressing the left side of the key 1403 on the remote control 1401. Up arrow 1709 and down arrow 1707 indicate to the user that there are more options above or below the highlight 1710 where they are currently located. When the arrow is not visible, then there is no more information in that direction.
For example, the user only needs to select the Now viewing 1604 and press the right side of the button 1403 of the remote control 1401, and then the Now viewing screen 1701 will appear, and there is a program list 1705 on the screen 1701 and appearing in a downward arrangement, and the nearest program is listed at the top of the program list. The list of programs contained in the Now show list 1705 counts the programs that the system recorder and system require the user to consider interesting. The system list is based on the user's preference for the system to express the program, which may be expressed using the up-down rate described below, up-down rate and indicated with the TiVo tag 1712. Yellow dot 1702 is a warning indicator that the program is running out and is deleted from the hard disk within a short time (e.g., within 24 hours). A yellow dot of exclamation point 1704 indicates that the program is to be deleted in a shorter period (e.g., in the next few hours). Green point 1703 indicates that the system will store the program until the user intentionally deletes it. Red point 1713 indicates that the program is currently being stored in storage.
The down pointing arrow 1711 is displayed at the lower region of the list 1705, when the user wants to scroll down for more information. The up pointing arrow is shown at the upper region of the list 1705, appearing when there is more information to scroll up. The user scrolls up or down in the list, respectively, when pressing the key 1403 on the remote 1401 and going up or down; the channel button 1410 goes up or down in the list when going up or down, respectively.
When the user depresses the right side of the key 1403 on the remote control 1401, the user sees a more detailed program information screen. Please refer to fig. 18. This screen provides the user with more information about the particular program. The user may also automatically delete a program without taking action 1805, immediately view 1801, immediately delete 1803, ask the invention to store the program longer 1802, or until the user deletes 1802 it. If the user requests the invention to store the program longer, the yellow or exclamated yellow dots will disappear. In addition, the user may also store the program in an external VCR for archiving 1805. The present invention can simultaneously display highlight bar 1806, cued arrows 1810, 1811, 1812, and video loop segment 1807, while the textual description of program 1809 is also displayed.
A down-finger key 1813 is displayed in the lower part of the screen to indicate that the user can press a channel key 1410 on the remote controller 1401, detailed program information of the next program on the Now viewing list. The up finger key is displayed on the upper portion of the screen indicating that the program list has other programs in the square direction. With these functions, the user can get more details of the same functions on the Now browsing list.
Please refer to fig. 7, 15 and 18. The invention provides a bookmark function, which can enable a user to bookmark the program position away from the user. CPU713 records the frame where the program the user stopped is in or the user may command the system to place a bookmark and media switch 701 updates the status of the video stream of CPU 713. For example, the user may view the first half hour of a two hour program stored in storage device 710, and then bookmark where he left the program, or the user may bookmark a point of interest in the program. In addition, the present invention may also automatically bookmark a program when the user leaves watching the program (e.g., to a television program or menu mode). The present invention places an indicator 1708 on the screen indicating that the bookmark has been saved.
At any time, the user uses all of his tags and can continue to watch the program from the tag. When a program is deleted from storage device 710, its associated tag is also deleted. In addition, the user may also select a particular bookmark or all bookmarks for a program. Once the program is playing, the user may jump to a bookmark using skip key 1414 on remote 1401 and may depress select key 1406 to leave the bookmark.
Bookmarks in a single program may be set for different users and the remote control signal may be encoded for a user in the home. This allows each member of the family to have their own remote control, which has the advantage that parental control, personal preferences and bookmarks are automatically activated when each remote control is used, and the CPU713 can note that a bookmark belongs to a particular coded remote control, each set of data being stored in the storage device 710.
The remote controller can self-identify the system through a coding chip on a panel of the remote controller. The control input module 1504 receives a command signal of the remote controller; the viewer interface 1503 is responsible for the identification of the remote control and checks its preference settings in the storage 1502 for all relevant preference files. The viewer interface 1503 then uses the user's bookmark information for the associated favorites file (or default favorites file if no match is found), and all bookmarks in the storage 1502 that do not have associated programs are ignored and deleted. The viewer interface 1503 instructs the media controller 1501 to display the program whose starting frame corresponds to the favorite file bookmark (if present).
In addition, coded remote controls may also be provided for parental control, and the remote control may be set to have different levels of control for each remote control parent. For example, a child's personal remote may be set to not view any more than G levels.
It will be appreciated by those skilled in the art that although the above describes the coded remote control as a method of using the preferences of an individual user, it is also possible to implement other methods such as may be selected as a use manual.
Multiple bookmarks in a program are transparent to the user because the remote control used by the user requires the system to only display and activate certain user bookmarks. The user can also see bookmarks set by other users, if necessary.
It will be appreciated by those skilled in the art that the bookmarks of the present invention are applicable to any video or video application where the physical location of program content is readily determinable, such as may be used for DVDs, VCRs, MP3s, and the like.
The user may indicate his or her preference for a program. In a program, the user can rank the audience rating of a specific program by one, two or three upwards numbers, and the preference degree of the program is represented; the user may also indicate that he dislikes the program by a one, two or three down count; the number of up or down indications increases as the user likes or dislikes the program.
The user may rate a program while viewing the program or viewing the program information, and the accumulation of program ratings allows the system to store the associated program on the system storage device. This affects the performance of the underlying system described by the present inventors in U.S. patent application 08/incorporated herein by reference.
Please refer to fig. 19, 20a, 20b and 20 c. Whenever a user views an episode of a program or the user views the program information 1908, the present invention displays the user's ranking of the program (when it exists). Title 2001 pictures are displayed in the upper portion of the screen whenever the user changes channels, switches to live television program images, or causes a title to appear.
The title may have three levels, each level containing sequentially more information for a program, and the user may rotate through the three levels. The lowest level header 200 contains the least information, such as channel 201, station number 2003, and time 2004. The second tier title 2005 displays, in addition to the information of the minimum title 2001, the program name 2006, the total time 2007, the program MPAA or the television rating 2008 and ranking. Finally, the title 2009 is used to add the program textual description 2010 to the second hierarchical title 2005, where the program textual description 2010 is translucent for the user to read the text while still viewing the program.
Please refer to fig. 21. The illustration shows certain programs shown in the suggestion field 2101 of TiVo that the user indicated as preferred by his or her favorites and other systems.
The user may request that the system record a short momentary time of the program, the next x number displayed, record all events that occur within a set time of the program, or obtain a season pass for the program. The season pass can inform the system user that all information of a particular program over the season is to be recorded. For example, the system can cause the program to be displayed at eight o 'clock every monday morning and store the program in storage at eight o' clock every monday afternoon until the end of the season. In addition, the season pass is provided to the user only when the program belongs to a program with dialogue.
Whenever viewing an image of a live television program, the user tells the system the progress of the program to be stored, the next time the program is recorded (if any), or a season pass for the program may be available. If the user is watching a program and informs the system of the progress of the program he wants to record, the system will start recording the program from that point in time and add these parts to the program that was previously licensed and buffered. Since the user's selection will appear in his personal data, he can edit his selection at a later time.
Please refer to fig. 22 and 23. The show area 2201 contains a list of programs provided by a television or cable network, which are currently provided in the network program lineup. For example, the user moves the highlight bar to the right and may view the network list. The user can select NBC2203 by highlighting the particular column and moving the highlight bar 2204 to the right, the program menu list for NBC will appear on the next screen 2301. The user may then move highlight bar 2302 to highlight a program menu and then move highlight bar 2303 to the right to view the program list on the next screen.
Please refer to fig. 19 again. The figure shows a screen displaying program information. The user may get the ranking (if any) 1901 and program description and channel information. The user may see a number of choices, such as now view 1902, record an episode 1903, get a season pass 1904, watch a program to be aired 1905, cancel a particular record 1906, and watch a theme 1907 (which shows other programs in the same theme zone)
Referring to fig. 24, TiVo's going-to-event list 2401 includes a list of programs 2402 that the system will store on the system's hard drive, and has a display of a list of days away from the day on which the system has a list of relative programs to store on the system's hard drive. The user can select the day he wants to query by highlighting the day and moving the highlight bar to the right. The system displays the list of programs stored on that day. In addition, the present invention may also display the list of all programs 2402 and the program name 2407 of the day 2404 at the same time.
A checkmark next to the program to indicate that the user requested the system to record the program; the two-core pair marker 2403 represents a portion of the program 2407 that belongs to the season pass. The user may check the programs on the list or leave the status of checking the programs. When the program is stored in the storage device, the priority of the program marked with the check mark is higher than that of the program not marked with the check mark.
If the user wants to check too many programs, the invention will inform the user that the space of the system hard disk is insufficient. The user is informed of which programs currently stored or to be stored on the system hard disk should be disconnected, so as to achieve the purpose of storing the programs to be stored. The user may accept the user's suggestion or he may also get a list of programs currently stored or scheduled to be stored on the storage device and may choose to remove programs from the storage device that are not intended to be stored anymore. When the user selects a program that is not to be stored, the user can add an "X" to the program name, and the system can also select the program to be removed.
Please refer to fig. 25. All program schedule conflicts are immediately displayed 2501 to the viewer. The reason for such conflicts includes the viewer's choice to store both programs simultaneously, or both programs with overlapping times (when only one tuner is present), etc.
Please refer to fig. 14. The viewer can also use the up finger 1405 and down finger 1404 buttons on the remote 1401 to tell the system what types of programs they like or dislike, or actors. For example, the viewer may select an actor from a list and place one, two, or three up-and down-pointing buttons next to a particular actor's name. The viewer may process his list of favorite actors and may add or remove actors from the list. In addition, the favorite director can also be indicated, such as in a manner to handle favorite actors. The system can sense the viewer's preferences and advise the user to watch the programs and the program types performed by the actors, director.
Please refer to fig. 7 and 26. When the user watches a program, a play time bar 2601 appears on the live video. At this time, the CPU713 displays the play-out time bar 2601 and its associated partial image by the OSD generator through the digital mixer 718 to the television or monitor. The airtime bar 2601 visually informs the user about the size of the loop program storage and the amount the storage device has been filled (if the storage device capacity is insufficient). The media switch 701 can inform the CPU713 of the currently playing frame and the storage status.
The currently broadcast program is stored in the loop type storage device in the above-described manner. A green cache bar 2602 within the airtime bar 2601 to indicate the amount the circular storage device has been filled; the time markers 2603, 2604 are displayed in the play-out time bar 2601 for providing the user with a visual reference point, which the user can use to determine the current time and the relative time recorded by the storage device. The time markers 2603, 2604 may be any increment of time, but the increment is typically one-half hour or 15 minutes, with the cache bar 2602 moving to the left every half hour (this time is also optional). When a television program is broadcast, the current time must be displayed in a position that is the time increment of the right hand side 2610 of the broadcast time bar 2601 minus the center time stamp 2604. The entire length of time of the play-out time bar 2601 is calculated by subtracting the time of the left side 2609 from the time of the right side 2610 of the play-out time bar 2601.
The cursor 2605 moves along the play-out time bar 2601 and over the cache bar 2602 to show the point in time where the current play-out is located. Cursor 2605 and position indicator 2608 are connected to each other for the user to visually see where he is currently in the program. The mode indicator 2606 is positioned under the cursor 2605 and follows the movement of the cursor 2605. Mode indicator 2606 shows that the user is currently in a play, record, pause, slow play, fast forward (1, 2 or 3 times), slow reverse or fast reverse (1, 2 or 3 times) mode, where the 1, 2 or 3 times speed can be adjusted by the system to any desired multiple (e.g., 2, 16 and 32 times).
When the storage device is not full, the cache bar 2602 is extended to the right as more and more programs are stored in the loop storage device. The storage device is filled, then the cache stick 2602 runs to the right. When the cache stick 2602 arrives to the right of the play-out time stick 2601, it will move to the left of the play-out time stick 2601, with the right side of the cache stick 2602 sitting at the time stamp 2604 in the play-out time stick 2601. The cursor 2605 and position indicator 2608 in the airtime bar 2601 also move integrally with the cache bar 2607 to indicate the current position in the storage device. The time displayed to the right of the play-out time bar 2601 is offset by a half-hour offset from the time stamp 2604 at the center of the play-out time bar 2601 (this is the difference when the time is designed in increments of half an hour).
In addition, the left side of the playout time bar 2601 may also display a compressed time scale that is used when a large circular cache is used. Sometimes, the presence of the right side of the playout time bar 2601 (which indicates a time period greater than half an hour) is disadvantageous because the cache bar 2602 will move to the left when it reaches the end of the right side, which can confuse the user.
The user can move the cursor 2605 to any position in the cache bar 2602, and the position of the cursor 2605 can be specified by the play 1411, rewind 1415, fast forward 1408, pause 1412, slow motion play 1413, skip play 1414, and instant replay 1415 keys. When the instant replay is used for soccer replay, the instant replay key 1415 causes the cursor 2605 to be repositioned in the cache bar 2602 for 10 seconds (which is system adjustable) so that the user can view a portion of the program in an instant replay manner.
When the user watches a program that has been recorded, the time indicator of the air time bar located on the right side 2610 represents the total time of the program recording. The cache bar 2602 fills the entire airtime bar 2601 indicating that the program has been completely saved in the system. If only a portion of the program is stored, the store cache bar 2602 displays the length of the program stored by the system. For example, if the user did not record a program until after it had started, and the system did not store the beginning of the program in its storage device at that time, the cache bar 2602 would display the start of its broadcast as some time after the program started. Similarly, when the program is terminated too early, the above action will also be taken, and the cache bar 2602 will end when the recording action stops. In addition, the cursor 2605 also displays the time value (e.g., 1 hour) of the current position of the user in the program, and the operation of the mode indicator 2606 is described above and below.
Referring to FIG. 27, elements are shown next to the air time bar, including air time bar itself 2701 and cache bar 2702, cursor 2703 and half-hour timing marker 2704. The mode indicator may indicate that the recording action is in progress 2704. It is a particular aspect of the present invention that the user may move through the recorded program while the recording action is in progress. Cursor 2703 can be moved to any point in cache bar 2702, cache bar 2702 indicating the progress of the recording action. The mode indicator 2705 can display simultaneous performance of each of the actions of recording 2706, playing 2707, rewinding (triple speed) 2708, 2709, 2710, fast forwarding (3 times speed) 2711, 2712, 2713, and pausing and slow motion playing 2715, and the example shown in the figure is a recording combining 2 times fast forward 2716 and 3 times fast forward 2717.
The presentation of the trick play bar and its associated small display frames on the program content is only for a short period of time, wherein the trick play bar is presented for the time the user is engaged in any play-related action, i.e., recording, playing, rewinding, fast-forwarding, pausing and slow-motion playing. If the enabled mode is play or record, the play time bar and its related components will be displayed on the screen for a short period of time, so that the program can be viewed by the user with the obstacle removed from the screen, and the display time can be adjusted by the system. Besides the edit mode or using a dedicated play display, the trick play bar and its related components can be played indefinitely.
In addition, an index or bookmark indicator may be displayed over the trick play bar. For example, the bookmarks may be a vertical bar, which may be colored, marked or tagged to uniquely indicate to the user that an index or bookmark exists at that location. The user can jump to each indexed or bookmark indicator in sequence by depressing the jump key on the remote 1401, the index and bookmark can be easily placed or moved by the user, as previously described.
Those skilled in the art will appreciate that the air time wand of the present invention may be used in any video or audio application where the actual location of the program is readily ascertainable, such as DVDs, VCRs, MP3s, and the like.
Another unique aspect of the present invention is that the user can record another program in the system and store it on the storage device while watching the pre-recorded program stored on the storage device, which simultaneous operation is a natural feature of the structure of the present invention. The number of programs to be recorded and stored on the storage device may be the number of tuners or resources in the system.
Please refer to fig. 14 and 15. The invention can predict the position where the user wants to stop in the program (excessive correction of stop position) when the user stops the fast forward or backward mode. Wherein, a command sent by a user from the remote controller 1401 can be received by the control input module 1504; the user can first set the mode to fast forward or fast reverse by pressing fast forward key 1408 or reverse key 1407. The viewer interface 1503 then informs the media controller 1501 to fast forward or rewind through the program. Next, each time the fast forward 1408 or rewind 1407 button is pressed, the system enters a 1, 2 or 3 times fast forward or rewind mode, respectively. When the user wants to stop fast forward or fast reverse, he just presses any other media control button, but generally the play button 1411 is the most common.
The viewer interface 1503 receives commands from the control input module 1504 and informs the media controller 1501 to stop. The media controller 1501 then feeds the viewer interface 1503 with the frame position at which the program content was stopped. The viewer interface then tells the media controller 1501 to switch to the user-selected mode and to transmit the frame to the media controller 1501 to begin entering that mode, with the frame starting position being the current frame plus or minus the over-position correction.
The present invention can be used to record the correction amount (i.e. fast forward or fast reverse) of the user after stopping the fast forward or fast reverse mode (each speed) according to the requirement of each user. The correction factor can be calculated by averaging the user's correction with the set factor, taking the median, or any other means, for each speed. But if the system finds that the user continues to make corrections, the system will adjust the obtained correction factor.
In addition, the present invention also uses a predictive method to stop the user at the correct position in the program when switching between any of the modes. The prediction method first determines whether the user is in a 1-fold, 2-fold or 3-fold fast forward or reverse mode. Then, a time multiple (depending on the actual speed at 1, 2 or 3 times) is automatically subtracted or added to the frame and the user is positioned at the modified frame, where the frame is indicated as the handover is detected. The system then fine-tunes the time multiplier as it knows that the user is continually correcting the position after the fast forward or reverse mode has stopped.
In another method, the invention initially tests the user's response time by using a test tape. During test tape play, the user is required to depress the fast forward 1408 or fast reverse 1407 keys, and then to stop the tape contents at the location where the user wishes the system to stop. The time difference is then used whenever the user is in fast forward or reverse mode, and can be adjusted for each speed.
In the last method of the present invention, the user can make a sensitivity setting, and the system will use the setting as a correction. Whenever the user uses fast forward or fast reverse mode, the present invention will add or subtract a multiple of this factor to the play frame.
It will be appreciated by those skilled in the art that the bookmark of the present invention can be used in any program where physical locations can be easily determined, such as for DVDs, VCRs, MP3s, etc.
Please refer to fig. 7, 14, 28, 29, 30 and 31. The present invention displays to the user a program guide area 2801 for programs currently being transmitted, already transmitted, or scheduled to be broadcast on the television, which is stored in storage device 710, and CPU713 may analyze the program guide information and may create program scheduling information.
The program guide area 2801 is translucent and overlaps the actual broadcast program 2802 viewed by the current user. Thus, while browsing the program guide schedule, the user can see the progress of the program 2802, which enables the user to immediately switch back into the program 2802. For example, a user may switch to browse program guide 2803 when a program enters an ad slot; when the user sees the end of the ad slot, he or she can immediately switch back to program 2802.
Pressing television guide button 1409 on remote control 1409 results in a central program guide area 2801 where the user navigates through the program schedule information. The program guide area 2803 displays all of the channels currently being presented on the television and on a particular channel that will be reached. The present invention is presented in two different modes, two columns or three columns, when displaying program guide information. Generally, only two rows are displayed on a screen at a time to make the display more regular and present information to the user in a more affinity format, rather than the traditional channel/time format.
Two column mode 2803 shows that the existing channels are displayed in a rotating endless list in the left row 2804 and the program with the highlighted channel is displayed in the right row 2805. The user scrolls through the list of channels by pressing up or down button 1403 or pressing up or down channel button 1410. The interface is the same for all rows when scrolling; the implied arrows are also the same in this interface to illustrate that there is still more information in the direction indicated. Further, when the highlight bar moves to the right, the user may get more detailed information, i.e., as described above.
The current time period 2807 is displayed on the screen above the left row 2804, which can be easily changed by the user by depressing either the back button 1407 or the forward button 1408 on the remote 1401 to move the time period 2807 back or forward, respectively. Below the time display is a list of channels 2804 selectable by the user, with a station number 2810 and the name of the program currently being aired 2811 by each channel number 2809. The user moves highlight bar 2812 over the channel of interest and the descriptions 2806, 2808 of the currently playing program are also displayed. The preferred embodiment of the present invention places the description area 2806 over two columns. When the user changes time period 2807, program name 2811 changes to a name relative to that at time period 2807, at which time the program in right row 2805 also changes to correspond to time period 2807.
The program information currently displayed on the highlighted channel is displayed in the upper fields 2806, 2808 of the program guide area 2810; all user-desired program related data is displayed in the upper fields 2806, 2808 for the currently selected program. These pieces of information include: program name, dialog, program description; actors shown in the program, all advisory data, audio parameters, genre of the program, start and stop times, MPAA or tv rating of the program, indicia of the network on which the program is broadcast, current time, etc. The timing of the display of this information may be when the program is selected to be recorded, when the program has been selected as a season pass, if the user has indicated a rating of up or down.
The user may press a key 1403 on the remote 1401 and move to the right row 2805 where the user is ready to scroll through the programs 2805 in the channel. When a program is highlighted, information for that program (as described above) is displayed in the upper fields 2806, 2808 of the program guide field 2801.
The right column 2805 displays the program schedule for a particular channel, and the program schedule begins at time 2807 indicated on the left column 2804. Program name 2814 and start time 2813 are also displayed. For example, channel 2 is highlighted and the right column shows all programs starting at the present time or selected time. The user may move the highlight bar within the list of programs 2805 and thus within the time slots of each day in the program guide information. The up or down function may also be used by the user (as already described above), which may save the user the trouble of scrolling through any row of program listings.
A channel number and number 2815 is displayed on the right row 2805, where the change of channel number 2815 can be accomplished by the user pressing the back button 1407 or the forward button 1408 on the remote 1401, i.e. the channel number 2815 can move forward or backward in the channel list, respectively. The left row 2804 channel list is shifted, i.e., scrolled forward or backward in the channel surface, depending on the user's channel selection. The right row program list 2805 changes to the program corresponding to the channel number 2815 selected by the user and starts at time 2807 displayed on the left row 2804.
The program listings in the right row 2805 may be presented in two intuitive forms. The first form 3201 lists the start time 3202 of each program next to the program name 3203, and the list 3204 is displayed in a descending order from the latest time to the latest time.
The user may highlight a program and move the highlight bar to the right to obtain the picture shown in fig. 18. At this point, the user has the option to view the program that is being shown (if the program is currently playing) 1802, record the dialog 1803, obtain the season pass 1804, view a future listing of the program 1805, cancel the recording (if the program is being recorded or scheduled to be recorded) 1806, or view the program within the subject area 1807.
The three column mode is a two column mode plus a higher level column, meaning that one column is added to the left of the channel row, but visually only two columns can be displayed, while a larger screen or higher definition can display three columns at a time. The program guide information is categorized in various ways, such as into full movie 2901, favorite channel 3001, full channel 3101, and full motion programs. The first column 3103 contains the classification methods available to the user; the second column 3104 presents the available channels corresponding to the classification method, with the channel row description being the same as for the two-column method. To perform the classification, the user simply highlights the preferred classification method with highlight bar 3102, and the classification channel then appears in right row 3104.
The user may then move the highlight bar to the right row 3104 (by depressing the right key 1403 on remote control 1401), whereupon the user may scroll through channel 3104 with the program information for the highlighted channel displayed on the upper screen portion of the program guide area, as described above. The user can move the highlight bar to the right again to get the two column channel/program format as described above. The two column channel formats may be different (when using the sorting method rather than all channels) because the channels shown in the left row are the result of the sorting method.
To remove the program guide area 2801 from the screen and return to the program viewing mode, the user may again depress television guide key 1409.
Whenever the user moves the highlight bar to another zone, the present invention generates a switching sound through the digital mixer 718 as described above. When the user tries to perform an unauthorized action, the present invention can generate an alarm sound, such as a user moving the highlight bar to a non-existing area, which implies that the arrow is not shown. This sound production can be turned on or off by the user.
The above description is only for the preferred embodiment of the present invention, and not intended to limit the scope of the present invention, so that those skilled in the art can substitute the present invention by these embodiments, but these embodiments do not depart from the scope of the present invention described in the appended claims, and the scope of the present invention shall be determined by the claims that will be described later.
Claims (38)
1. A method for visually and interactively communicating the recording or playback progress of audio or video program content to a user, said method comprising the steps of:
displaying a cache stick to a user on a display device;
wherein the cache bar indicates an available amount of program content through which a user can manipulate and playback;
displaying a position indicator on the cache bar;
wherein the position indicator moves within the boundaries of the cache bar and is displayed in the cache bar at a position corresponding to relative time in the cache bar that represents a current playback position in the program content; and
wherein the position indicator is a visual indication to the user of the current playback position in the program content.
2. The method of claim 1, wherein the position indicator is moved by a user to any position within the cache stick.
3. The method of claim 1, wherein the cache bar and the position indicator are displayed to a user for a predetermined time.
4. The method of claim 1, wherein the current playback position in the program content is adjusted in the program content relative to user placement of the position indicator in the cache bar.
5. The method of claim 1, wherein the cache bar and the position indicator are displayed to a user when the user selects a mode, the mode comprising any of play, record, pause, slow play, fast forward, frame forward, reverse, or rewind modes.
6. The method of claim 1, further comprising:
displaying a cursor;
wherein the cursor moves along the cache bar with the position indicator.
7. The method of claim 6, wherein the cursor displays a numeric time or count mark for the current playback position.
8. The method of claim 1, further comprising:
a numeric format time or count marker for the current playback position is displayed near the cache bar.
9. The method of claim 1, further comprising:
displaying a time stamp;
wherein the time stamp is displayed outside the cache stick giving the user a visual point of reference for time; and
wherein the time stamp is displayed in desired time increments.
10. The method of claim 1, further comprising:
a display mode indicator;
wherein the mode indicator follows movement of the position indicator; and
displaying on the mode indicator an indication of whether the user is in any one of play, record, pause, slow-play, fast-forward, frame-in, reverse, or reverse modes.
11. The method of claim 1, further comprising:
displaying a mode indicator in proximity to the cache bar; and
displaying on the mode indicator an indication of whether the user is in any one of play, record, pause, slow-play, fast-forward, frame-in, reverse, or reverse modes.
12. The method of claim 1, wherein the cache bar extends in length as the program content is being recorded.
13. The method of claim 12, wherein the cache stick drifts in a position opposite to an extension direction when the cache stick extends to a predetermined extension point.
14. The method of claim 13, wherein the position indicator moves integrally with the cache stick reflecting a current playback position in the recording.
15. The method of claim 1, wherein the total length of stored program content or the next time or count increment of a recording cycle is displayed in the vicinity of the trick play bar.
16. The method of claim 1, wherein the cache bar and the position indicator are displayed for a predetermined period of time.
17. The method of claim 1, wherein index and/or tag indicators are displayed near the cache stick.
18. The method of claim 17, wherein the user commands the tag indicator to be placed near the cache bar indicating the location of the tag in a particular program content.
19. The method of claim 17, wherein the user can jump to an index or tag indicator displayed near the cache stick, thereby causing playback of program content from the index or tag point.
20. An apparatus for visually and interactively communicating the recording or playback progress of audio or video program content to a user, said apparatus comprising:
means for displaying a cache bar to a user on a display device;
wherein the cache bar indicates an available amount of program content through which a user can manipulate and playback;
a position indicator displayed on the cache bar;
wherein the position indicator moves within the boundaries of the cache bar and is displayed in the cache bar at a position corresponding to relative time in the cache bar that represents a current playback position in the program content; and
wherein the position indicator is a visual indication to the user of the current playback position in the program content.
21. The apparatus of claim 20, wherein the position indicator is moved by a user to any position within the cache stick.
22. The apparatus of claim 20, wherein the cache bar and the position indicator are displayed to a user for a predetermined time.
23. The apparatus of claim 20, wherein the current playback position in the program content is adjusted in the program content relative to user placement of the position indicator in the cache bar.
24. The apparatus of claim 20, wherein the cache bar and the position indicator are displayed to a user when the user selects a mode, the mode comprising any of play, record, pause, slow play, fast forward, frame forward, reverse, or rewind modes.
25. The apparatus as recited in claim 20, further comprising:
a cursor;
wherein the cursor moves along the cache bar with the position indicator.
26. The apparatus of claim 25, wherein the cursor displays a numeric time or count mark for the current playback position.
27. The apparatus as recited in claim 20, further comprising:
means for displaying a numeric time or count stamp of the current playback position in proximity to the cache bar.
28. The apparatus as recited in claim 20, further comprising:
time marking;
wherein the time stamp is displayed outside the cache stick giving the user a visual point of reference for time; and
wherein the time stamp is displayed in desired time increments.
29. The apparatus as recited in claim 20, further comprising:
a mode indicator;
wherein the mode indicator follows movement of the position indicator; and
displaying on the mode indicator an indication of whether the user is in any one of play, record, pause, slow-play, fast-forward, frame-in, reverse, or reverse modes.
30. The apparatus as recited in claim 20, further comprising:
means for displaying a mode indicator in proximity to the cache bar; and
displaying on the mode indicator an indication of whether the user is in any one of play, record, pause, slow-play, fast-forward, frame-in, reverse, or reverse modes.
31. The apparatus of claim 20, wherein the cache bar extends in length as the program content is being recorded.
32. The apparatus of claim 31, wherein the cache bar drifts in a position opposite to an extension direction when the cache bar extends to a predetermined extension point.
33. The apparatus of claim 32, wherein the position indicator moves integrally with the cache stick reflecting a current playback position in the recording.
34. The apparatus of claim 20, wherein the total length of stored program content or the next time or count increment of a recording cycle is displayed in the vicinity of the trick play bar.
35. The apparatus of claim 20, wherein the cache bar and the position indicator are displayed for a predetermined period of time.
36. The apparatus of claim 20, wherein index and/or tag indicators are displayed near the cache stick.
37. The apparatus of claim 36, wherein the user commands the tag indicator to be placed near the cache bar indicating a tag location in a particular program content.
38. The apparatus of claim 36, wherein the user can jump to an index or tag indicator displayed near the cache stick, thereby causing playback of program content from the index or tag point.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12717899P | 1999-03-30 | 1999-03-30 | |
| US60/127,178 | 1999-03-30 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1096765A1 HK1096765A1 (en) | 2007-06-08 |
| HK1096765B true HK1096765B (en) | 2009-10-16 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN100407328C (en) | Multimedia visual playing progress indicating system | |
| CN100383890C (en) | Multimedia program bookmarking system and method | |
| US10181338B2 (en) | Multimedia visual progress indication system | |
| US8220021B1 (en) | Television viewer interface system | |
| US6850691B1 (en) | Automatic playback overshoot correction system | |
| US20050251750A1 (en) | Television viewer interface system | |
| HK1096765B (en) | Multimedia visual progress indication system | |
| HK1119340A (en) | Multimedia program bookmarking system and method | |
| HK1119340B (en) | Multimedia program bookmarking system and method | |
| HK1115258A (en) | Television viewer interface system |