Motorola Mobility, Inc. et al v. TiVo Inc.
Filing
73
ANSWER to 1 Complaint,, Amended COUNTERCLAIM against General Instrument Corporation, Motorola Mobility, Inc., Time Warner Cable Inc.,, Time Warner Cable LLC by TiVo Inc.. (Attachments: # 1 Exhibit A, # 2 Exhibit B, # 3 Exhibit C)(Baxter, Samuel)
Exhibit B
(12)
United States Patent
(10)
Barton et al.
(45)
SYSTEM FOR TIME SHIFTING
MULTIMEDIA CONTENT STREAMS
Patent NO.:
US 7,529,465 B2
Date of Patent:
May 5,2009
(56)
References Cited
U.S. PATENT DOCUMENTS
3,682,363 A
Inventors: James M. Barton, Los Gatos, CA (US);
Roderick James McInnis, Milpitas, CA
(US); Alan S. Moskowitz, San
Francisco, CA (US); Andrew Martin
Goodman, Menlo Park, CA (US); Ching
Tong Chow, Fremont, CA (US); Jean
Swey Kao, Cupertino, CA (US)
811972 Hull
(Continued)
FOREIGN PATENT DOCUMENTS
(Continued)
OTHER PUBLICATIONS
Assignee: TiVo Inc., Alviso, CA (US)
Notice:
Subject to any disclaimer, the term of this
patent is extended or adjusted under 35
U.S.C. 154(b) by 0 days.
Feb. 20,2002
Prior Publication Data
US 200210146233 A1
(Continued)
Primary Examiner-Huy T Nguyen
(74) Attornq, Agent, or Firm-Hickman
Becker LLP
Appl. No.: 101081,776
Filed:
European Patent Office, "Communication pursuant to Article 94(3)
EPC", Foreign applicationNo. 02 796 373.5-1522, received Jan. 25,
2008, 6 pages.
Oct. 10.2002
Related U.S. Application Data
Continuation of application No. 091827,029, filed on
Apr. 5, 2001, which is a continuation of application
No. 091126,071, filed on Jul. 30, 1998, now Pat. No.
6,233,389.
Int. C1.
H04N 5/91
(2006.01)
U.S. C1. ............................. 386168; 386183; 386195;
3861125
Field of Classification Search ..................... 38611,
38614, 6-8,39, 40, 45, 46, 68, 69-70,75,
386181, 82, 83, 96, 98, 99, 104, 105, 106,
3861124, 125, 126; H04N 5/76, 5/92, 5/781,
H04N 5/783, 9/79
(57)
ABSTRACT
A multimedia time warping system. The TV streams are
converted to an Moving Pictures Experts Group (MPEG)
formatted stream for internal transfer and manipulation and
are parsed and separated it into video and audio components.
The components are stored in temporary buffers. Events are
recorded that indicate the type of component that has been
found, where it is located, and when it occurred. The program
logic is notified that an event has occurred and the data is
extracted from the buffers. The parser and event buffer
decouple the CPU from having to parse the MPEG stream and
from the real time nature of the data streams which allows for
slower CPU and bus speeds and translate to lower system
costs. Thevideo andaudio components are stored ona storage
device and when the program is requested for display, the
video and audio components are extracted from the storage
device and reassembled into an MPEG stream which is sent to
a decoder. The decoder converts the MPEG stream into TV
output signals and delivers the TV output signals to a TV
receiver.
See application file for complete search history.
20 Claims, 12 Drawing Sheets
Input
Module
22
0,
input
Modute
203-\
Input
Module
Module
Output
Module
-
-
Palermo Truong &
Media
Switch
Ouiput
Module
Module
US 7,529,465 B2
Page 2
U.S. PATENT DOCUMENTS
3,942,190 A
4,141,039 A
4,221,176 A
4,224,481 A
4,258,418 A
4,313,135 A
4,347,527 A
4,388,659 A
4,408,309 A
4,423,480 A
4,439,785 A
4,506,348 A
4,506,358 A
4,602,297 A
4,633,331 A
4,665,431 A
4,688,106 A
4,689,022 A
4,706,121 A
4,723,181 A
4,752,834 A
4,755,889 A
4,760,442 A
4,761,684 A
4,789,961 A
4,805,217 A
4,816,905 A
4,821,121 A
4,833,710 A
RE33,535 E
4,876,670 A
4,891,715 A
4,897,867 A
4,920,533 A
4,924,387 A
4,939,594 A
4,947,244 A
4,949,169 A
4,949,187 A
4,963,866 A
4,963,995 A
4,972,396 A
4,979,050 A
4,991,033 A
5,001,568 A
5,014,125 A
5,018,186 A
5,019,900 A
5,021,893 A
5,027,241 A
5,027,400 A
5,047,857 A
5,057,932 A
5,063,453 A
5,089,885 A
5,093,718 A
5,109,281 A
5,118,105 A
5,126,852 A
5,126,982 A
5,130,792 A
5,132,992 A
5,134,499 A
5,142,532 A
5,153,726 A
5,168,353 A
5,172,413 A
5,202,761 A
5,208,665 A
5,214,768 A
5,226,141 A
311976 Detweiler
211979 Yamamoto
911980 Besore et al.
911980 Russell
311981 Heath
111982 Cooper
811982 Lainez
611983 Lemke
1011983 Kiesling et al.
1211983 Bauer et al.
311984 Leonard
311985 Milleretal.
311985 Montgomely
711986 Reese
1211986 McGrady et al.
511987 Cooper
811987 Keller et al.
811987 Peers et al.
1111987 Young
211988 Hickok
611988 Koombes
711988 Schwartz
711988 Oconnell et al.
811988 Clark et al.
1211988 Tindall
211989 Morihiro et al.
311989 Tweedy et al.
411989 Beaulier
511989 Hirashima
1011989 Cooper
1011989 Nakabayashi et al
111990 Levy
111990 Foster et al.
411990 Dufresne et al.
511990 Jeppesen et al.
711990 Moxon et al.
811990 Fenwick et al.
8i1990 Lumelsky et al.
811990 Cohen
1011990 Duncan
1011990 Lang
1111990 Rafner
1211990 Westland et al.
211991 Takeshita
311991 Efron et al.
511991 Pocock et al.
511991 Kimura et al.
511991 Clark et al.
6i1991 Scheffler
611991 Hatch et al.
611991 Baji et al.
911991 Duffield et al.
1011991 Lang
1111991 Yoshimura et al.
211992 Clark et al.
311992 Hoarty et al.
411992 Koberi et al.
611992 Brim et al.
611992 Nishino et al.
6i1992 Y~frach
711992 Tindell et al.
711992 Yurt et al.
711992 Sata et al.
811992 Adams
1011992 Billing
1211992 Walker et al.
1211992 Bradley et al.
411993 Cooper
511993 McCalley et al.
511993 Martin et al.
711993 Esbensen
811993 Jernigan et al.
811993 Takeuchi
811993 Mills et al.
811993 Goldwasser et al.
911993 Nishimura
911993 Litteral et al.
1011993 Bmno
1011993 Yurt et al.
211994 Akiyama et al.
211994 Bradley et al.
211994 Haskall
511994 Clark
511994 Ostenveil
511994 Ostenveil
711994 Yifrach
1011994 Banker et al.
1111994 Edem et al.
1211994 Logan et al. ................ 3481571
511995 Nemirofsky
511995 Hooper et al.
611995 Powers
811995 Lynch et al. ................ 3861109
811995 Walters et al.
811995 Hooper et al.
1211995 O'Callaghan et al.
111996 Logston et al.
111996 Yuen et al.
411996 Awaji
411996 Rossmere et al.
411996 Matsumoto et al.
411996 Mills et al.
511996 Iizuka et al.
611996 Grady et al.
611996 Voeten et al.
811996 Long et al.
811996 Baker et al.
911996 Maturi et al.
1111996 Cooper
1111996 Peters
1111996 Shintani
1211996 Staron
1211996 McLaughlin et al.
1211996 Belknap et al.
211997 Wagner
211997 Bertram
311997 Bacher et al.
311997 Cobbley et al.
311997 Harscoet et al.
411997 Russo
411997 Compoint et al.
511997 Moskowitz et al.
611997 Lee
711997 Dunn et al.
811997 Porter et al.
1011997 Cooper
1211997 Iggulden et al.
1211997 Kim et al.
1211997 Russo et al.
111998 Isaka
2/1998 Hirayama et al.
211998 Kawamura et al.
211998 Ottesen et al.
211998 Ottensen et al.
311998 Oguro et al.
511998 Girard et al.
511998 Ludwig et al.
511998 Ottesen et al.
511998 Kobayashi et al. ............ 386196
611998 Henley et al.
611998 Yamauchi et al.
611998 Hite et al.
US 7,529,465 B2
Page 3
5,774,186
5,778,137
5,805,763
5,815,689
5,822,493
5,852,705
5,862,342
5,864,682
5,870,553
5,889,915
5,892,884
5,899,578
5,920,572
5,920,842
5,930,444
5,949,948
5,949,954
5,956,716
5,963,202
5,973,679
5,991,496
5,995,709
6,112,226
5,999,691
6,002,832
6,005,562
6,005,564
6,018,612
6,028,599
RE36,801
6,138,147
6,141,385
6,151,059
6,154,771
6,163,644
6,167,083
6,169,843
6,192,189
6,198,877
6,226,447
6,233,389
6,249,641
6,253,375
6,256,704
6,272,672
6,278,837
6,282,209
6,285,824
6,292,618
6,292,619
6,301,711
6,304,714
6,330,675
6,341,195
6,353,461
6,363,212
6,529,685
6,400,407
6,424,791
6,445,738
6,445,872
6,498,894
6,504,990
6,542,695
6,553,178
6,788,882
7,272,298
200510025469
200510122335
A
A
A
A
A
A
A
A
A
A
A *
A
A
A
A
A
A
A
A
A
A
A
A
A *
A
A
A
A
A
E *
A
A
A
A
A
A
B1
B1
B1
B1
B1
B1
B1
B1
B1
B1 *
B1
B1
Bl*
B1 *
B1
B1
B1
B1 *
B1 *
B1
B2
B1
B1 *
B1
B1 *
B2
Bl *
B1 *
B2 *
B1
B1
A1
A1
611998
711998
911998
911998
1011998
1211998
111999
111999
211999
311999
411999
511999
711999
711999
711999
911999
911999
911999
1011999
1011999
1111999
1111999
1111999
1211999
1211999
1211999
1211999
112000
212000
812000
1012000
1012000
1112000
1112000
1212000
1212000
112001
212001
312001
512001
512001
612001
612001
712001
812001
812001
812001
912001
912001
912001
1012001
1012001
1212001
112002
312002
312002
312002
612002
712002
912002
912002
1212002
112003
412003
412003
912004
912007
212005
612005
Brodsky et al.
Nielsen et al.
Lawler et al.
Shaw et al.
Uehara et al.
Hanko et al.
Winter et al.
Porter et al.
Shaw et al.
Hewton
Sugiyama et al. ............. 386196
Yanagihara et al.
Washington et al.
Cooper et al.
Camhi et al.
Krause et al.
Young et al.
Kenner et al.
Polish
Abbott et al.
Kojitma
Tsuge
Weaver et al.
Takagi et al. .................. 386146
Yoneda
Shiga et al.
Ahmad et al.
Thomason et al.
Yuen et al.
Logan et al. ................ 3861124
Weaver et al.
Yamaji et al.
Schein et al.
Rangan et al.
Owashi et al.
Sporer et al.
Lenihan et al.
Fujinami et al.
Kawamura et al.
Sasaki et al.
Barton et al.
Yokota
Gordon et al.
Hlava et al.
Conway
Yasukohchi et al. ......... 3861124
Kataoka et al.
Yanagihara et al.
Oharaetal. .................. 386146
Fujita et al. ................... 386152
Nusbickel
Krause et al.
Wiser et al.
Mankovitz et al. ............ 386183
Shore et al. ................. 3481722
Fujinami et al.
Ottesen et al.
Zigmond et al.
Saib ............................ 386183
Zdepski et al.
Sano et al. .................... 386146
Ito et al.
Abecassis .................... 386146
Akiba et al. ................ 3861125
Abecassis .................... 386183
Geer et al.
Lang et al.
Geer et al.
MacInnis et al.
200510132418 A1
200510226604 A1
612005 Barton et al.
1012005 Kawamura et al
FOREIGN PATENT DOCUMENTS
OTHER PUBLICATIONS
Claims, Foreign application No. 02 796 373.5-1522, 5 pages.
United States Petent and Trademark Office, "Ex Parte Reexamimation Communication Transmittal Form", Reemamination Control
No. 901007750, datedNov. 28, 2007, 20 pages.
Office Action from CN for foreign patent application No.
200410056388.3 dated Nov. 25,2005 (15 pgs)-attached.
Inside MacIntosh "QuickTime", Apple Technology Library by Apple
Computer, Inc., 0 1993 (published by Addison-Wesley Publishing
Company) 719 pgs.
Inside MacIntosh "Files", Apple Technology Library by Apple Computer, Inc., 0 1992 (published by Addison-Wesley Publishing Company) 532 Pgs.
Inside MacIntosh "Memoly", Apple Technology Library by Apple
Computer, Inc., 0 1992 (published by Addison-Wesley Publishing
Company) 303 pgs.
Inside MacIntosh "QuickTime Components", Apple Technology
Library by Apple Computer, Inc., 0 1993 (published by AddisonWesley Publishing Company) 828 pgs.
Inside MacIntosh "Overview", Apple Technology Library by Apple
Computer, Inc., 0 1992 (published by Addison-Wesley Publishing
Company) 251 pgs.
Quantum 4500 Series High Capacity 5% Fixed Disk Drive, Quantum Corporation, 0 1983 (2 pgs).
Quantum 42080 Low-Cost, 85 Megabyte Fixed Disk Drive, "85 Mb
capacityl40ms average access time", Quantum Corporation, 0 1982
(2 P ~ s ) .
OEM Interface Specifications for DSAA-3xxx, 3.5-Inch Hard Disk
Drive with ATA Interface, IBM Corporation, 0 1994 (65 pgs).
DiviCom, MPlOO User Guide, DiviCom, Inc., 0 1996 (97 pgs).
Media Stream, "Satellite Receiver" Installation and Users Guide for
Windows 95, Media4, Inc., 0 1996 (33 pgs).
International Standard ISOIIEC 13818-1:2000(E) "Information
Technology4eneric Coding of Moving Pictures and Associated
Audio Information: Systems", 0 ISOIIEC 2000, Downloaded Jun.
30,2005 (173 pgs).
International Standard ISOIIEC 13818-1:2000/Amd.2:2004(E)
"Information Technology4eneric Coding of Moving Pictures and
Associated Audio Information: Systems", Amendment 2: Support of
IPMP on MPEG-2 Systems, 0ISOIIEC 2004, Downloaded Jun. 30,
2005 (13 pgs).
International Standard ISOIIEC 13818-2:2000(E) "Information
Technology4eneric Coding of Moving Pictures and Associated
Audio Information: Video", 0ISOIIEC 2000, Downloaded Jun. 30,
2005 (219 pgs).
International Standard ISOIIEC 13818-3:1998(E) "Information
Technology4eneric Coding of Moving Pictures and Associated
Audio Information: Audio", 0ISOIIEC 1998 (125 pgs).
Guide toVAXNMS File Avvlications.. SoftwareVersionVAXNMS
Version 4.0, Sep. 1984 (19 pgs).
Harrick M. Vin, et al., Designing A Multiuser HDTVStorage Server,
IEEE Journal, vol. 11, No. 1, Jan. 1993 (pp. 153-164).
L L
US 7,529,465 B2
Page 4
Quantum Fireball 640112808 Product Manual, Quantum@, Copyright 0 1995 by Quantum Corporation (190 pgs).
Winston Hodge, et al., "Chapter 7, True Edeo on Demand vs. Near
Edeo on Demand" , delivered at National Cable Television Conference, May 24, 1994 (pp. 103-120).
Cyril U. Orji, et al., "Design and Conjguration RationalesforDigital
Edeo Storage and Delivery Systems", Multimedia Tools and Applications, 9, 275-302 (1992), 0 1992 Kluwer Academic Publishers,
Boston (pp. 275-302).
R. Johnston, et al., "A Digital Television Sequencestore", IEEE, (pp.
594-600) 0 1978.
M. Hausdorfer, "Symposium Record Broadcast Sessions", HDTV
Production: Today and Tomorrow, Jun. 17, 1989, (7 pgs).
S. Berson, "Computer Science Department Technical Report", Staggered Striping in Multimedia Information System, Dec. 1993, Apr.
29, 1994, (24 pgs).
Comer Filepro Performance Series, CFP1060E/CFP1060S/
CFP1060W, "Intelligent Disk Drive Product Manual", Rev. A, May
1994, 0 1994, Comer Peripherals, Inc., (79 pgs).
Hugh M. Sierra, "An Introduction to DirectAccess Storage Devices",
0 1990 by Academic Press, Inc., (269 pgs).
Douglas T. Anderson, "The Hard Disk Technical Guide", Tenth Revision S-D., Feb. 1994, 0 1990, 1991, 1992, 1993, 1994 by Micro
House International Inc., (70 pgs).
K. Shen et al., A Fast Algorithm for Edeo Parsing Using MPEG
Compressed Sequences, IEEE, pp. 252-255 (0-8185-73 10-916261
1995).
S. Smollar et al., Content-based Edeo Indexing andRetrieval, IEEE,
Summer 1994, pp. 62-72.
* cited by examiner
U.S. Patent
May 5,2009
102
101
l nput
st reams-
Sheet 1 of 12
MPEG
st reams
-
Input
Module
I
CPU
Media
103
MPEG
-N
Switch
I
l~ernor~l
l06I
105
Disk
FIG. I
[104
U.S. Patent
May 5,2009
Sheet 2 of 12
Input
ModuIe
Output
Module
Input
Modut e
Output
Modu le
Media
Switch
Input
Module
Output
Module
Input
Modu I e
Output
Module
FIG. 2
U.S. Patent
May 5,2009
Sheet 3 of 12
FIG. 3
U.S. Patent
May 5,2009
/
40Z7
Sheet 4 of 12
1next
4 10
\
limit
I
pointer 1 l i m i t
pointer
408~
I I
video buffer
I
409
4 11
limit
-
limit
401
- I audio buffer I
4I
Parser
41
2
pointer
Inext pointer
1
limit
limit
I I I
I
private dofa buffer
1
imi
\
I pointer I llimitt II ---UI___l
lnext pointer I
event buffer
I
FIG. 4
502yA1
504
address
time stamp
FIG. 5
€
U.S. Patent
May 5,2009
Sheet 5 of 12
Circular
A Logical
Segment
Address
Length
601
69
0/
Media Switch
Type = I-FRAME
Times t omp
!
FIG. 6
= 096453
J
,1
U.S. Patent
May 5,2009
Sheet 6 of 12
FIG. 7
U.S. Patent
May 5,2009
buffers
o f data
Sheet 7 of 12
r Transforms
Q
buffer
l o f dal
-
encoder
Sinks
decoder
I
hard disk
FIG. 8
U.S. Patent
May 5,2009
Sheet 8 of 12
I Control
t
Media
Sw iich
push
current
FIG. 9
U.S. Patent
May 5,2009
Sheet 9 of 12
TmkC l i pCache
SmkCl ip
Reader
TmkC l ip
Writer
I
FIG. 1
0
I
U.S. Patent
May 5,2009
Sheet 10 of 12
0
Source
TV Signal
FIG. I 1
US 7,529,465 B2
U.S. Patent
May 5,2009
Sheet 11 of 12
NTSC Field Sequence
VBl
(FCC ~ondatcd)
{
\
I f Even field, Line 21
Contains Extended Data
Active
Picture
Region
Services (EDs) data (e-g.,
Time of day, V-chip)
I
Recognize r state moch rne
1205
S t a r t capture,
Words added to a special
segment in the fixed-size
PES buffer.
FIG. 1
2
Stop capture,
Phrase seen,
U.S. Patent
May 5,2009
Sheet 12 of 12
1302
Media
Switch
1 MPEG
stream
TV
r
1306
Ha rd
Disk
$
FIG. 1
3
1
2
SYSTEM FOR TIME SHIFTING
MULTIMEDIA CONTENT STREAMS
SUMMARY OF THE INVENTION
The invention provides a multimedia time warping system.
The invention utilizes an easily manipulated, low cost multi5 media storage and display system that allows the user to view
a television broadcast program with the option of instantly
This application is a continuation of U.S. patent applicareviewing previous scenes within the program. In addition,
tion Ser. No. 091827,029 filed on 5 Apr. 2001 which is a
the invention allows the user to store selected television
continuation of U.S. patent application Ser. No. 091126,071
broadcast programs while the user is simultaneously watch(now U.S. Pat. No. 6,233,389), filed on 30 Jul. 1998.
10 ing or reviewing another program.
A preferred embodiment of the invention accepts televiBACKGROUND OF THE INVENTION
sion (TV) input streams in a multitude of forms, for example,
analog forms such as National Television Standards Commit1. Technical Field p The invention relates to the time shifttee (NTSC) or PAL broadcast, and digital forms such as
ing of television broadcast signals. More particularly, the is Digital Satellite System (DSS), Digital Broadcast Services
invention relates to the real time capture, storage, and display
(DBS), or ~
d ~
~
~
l standards ~ i
~~
~ committee i
~~
of television broadcast signals.
(ATSC). Analog TV streams are converted to an Moving
2. Description of the Prior Art
Pictures Experts Group (MPEG) formatted stream for interThe Video Cassette Rxorder VCR) has changedthe lives
na1 transfer and manipulation, while pre-formatted MPEG
of television (TV) viewers throughout the world. The VCR 20 streams are extracted from the digital TV signal and presented
has offered viewers the flexibility to time-shift TV programs
in, similar format to encoded analog streams,
to match their lifestyles.
The invention parses the resulting MPEG stream and sepaThe viewer
TV Programs Onto magnetic
using
rates it into its video and audio components. It then stores the
the VCR. The VCR gives the viewer the
play,
components into temporary buffers. Events are recorded that
rewind, fast forward and Pause the stored Program material. 25 indicate the type of component that has been found, where it
These functions enable the viewer to pause the program playis located, and when it occurred. The program logic is notified
back whenever he desires, fast forward
unwanted
that an event has occurred and the data is extracted from the
program material or commercials, and to replay favorite
buffers,
scenes.
a VCR
capture and play back
The parser and event buffer decouple the CPU from having
information at the same time.
30 to parse the MPEG stream and from the real time nature of the
One approach
this problem is
use
data streams. This decoupling allows for slower CPU and bus
VCRs. For example, if two video tape recorders are available,
speeds which translate to lower system costs,
it might be possible to Ping-Pong between the two. In this
The video and audio components are stored on a storage
case, the first
is started at the beginning the prodevice, When the program is requested for display, the video
gram of interest. If the viewer wishes to rewind the broadcast, 35 and audio components are extracted from the storage device
the second recorder begins recording, while the first recorder
and reassembled into an MPEG stream, The MPEG stream is
is
rewound to the
place, and playback
sent to a decoder, The decoder convertsthe MPEG stream into
initiated. However, at least a third video tape recorder is
TV output signals and delivers the TV output signals to a TV
required if the viewer wishes to fast forward to some point in
receiver,
time after the initial rewind was requested. In this case, the 40
User control commands are accepted and sent through the
third recorder starts recording the broadcast stream while the
system. These commands affect the flow of said MPEG
second is halted and rewound to the appropriate position.
stream and allow the user to view stored programs with at
Continuing this exercise, one can quickly see that the equipleast the following functions: reverse, fast forward, play,
ment becomes unwieldy, unreliable, expensive, and hard to
pause, index, fastlslow reverse play, and fastislow play.
operate, while never supporting all desired functions. In addi- 45
Other aspects and advantages of the invention will become
tion, tapes are of finite length, and may potentially end at
apparent from the following detailed description in combinainconvenient times, drastically lowering the value of the solution with the accompanying drawings, illustrating, by way of
tion.
the
of the invention'
The use of digital computer systems to solve this problem
has been suggested. U.S. Pat. No. 5,371,551 issued to Logan 50
BRIEF DESCRIPTION OF THE DRAWINGS
et al., on 6 Dec. 1994, teaches a method for concurrent video
recording and playback. It presents a microprocessor conis a
schematic diagram of a high level view of
trolled broadcast and playback device, Said device corna preferred embodiment of the invention according to the
presses and stores video data onto a hard disk, However, this
approach is difficult to implement because the processor 55 invention;
FIG. 2 is a block schematic diagram of a preferred embodirequirements for keeping up with the high video rates makes
ment of the invention using multiple input and output modthe device expensive and problematic. The microprocessor
the
ules
must be extremely fast to keep up with the incoming and
FIG. 3 is a schematic diagram of an Moving Pictures
outgoing video data.
It would be advantageous to provide a multimedia time 60 Experts Group (MPEG) data stream and its video and audio
components according to the invention;
warping system that gives the user the ability to simultaFIG. 4 is a block schematic diagram of a parser and four
neously record and play back TV broadcast programs. It
direct memory access ( D m ) input engines contained in the
would further be advantageous to provide a multimedia time
Media Switch according to the invention;
warping system that utilizes an approach that decouples the
microprocessorfromthehighvideo datarates, thereby reduc- 65
FIG. 5 is a schematic diagram of the components of a
ing the microprocessor and system requirements which are at
packetized elementary stream (PES) buffer according to the
a premium.
invention;
CROSS-REFERENCE TO RELATED
APPLICATIONS
'
~
~ d
3
4
FIG. 6 is a schematic diagram of the construction of a PES
The Media Switch 102 mediates between a microprocessor
buffer from the parsed components in the Media Switch outCPU 106, hard disk or storage device 105, and memory 104.
put circular buffers;
Input streams are converted to an MPEG stream and sent to
FIG. 7 is a block schematic diagram of the Media Switch
the Media Switch 102. The Media Switch 102 buffers the
and the various components that it communicates with 5 MPEG stream into memory. It then performs two operations
according to the invention;
if the user is watching real time TV: the stream is sent to the
Output Section 103 and it is written simultaneously to the
FIG. 8 is a block schematic diagram of a high level view of
the program logic according to the invention;
hard disk or storage device 105.
FIG. 9 is a block schematic diagram of a class hierarchy of
The Output Section 103 takes MPEG streams as input and
l o produces an analog TV signal according to the NTSC, PAL,
the program logic according to the invention;
FIG. 10 is a block schematic diagram of a preferred
or other required TV standards. The Output Section 103 conembodiment of the clip cache component of the invention
tains an MPEG decoder, On-Screen Display (OSD) generaaccording to the invention;
tor, analog TV encoder and audio logic. The OSD generator
allows the program logic to supply images which will be
FIG. 11 is a block schematic diagram of a preferred
embodiment of the invention that emulates a broadcast studio 1s overlayed on top of the resulting analog TV signal. Additionvideo mixer according to the invention;
ally, the Output Section can modulate information supplied
FIG. 12 is a block schematic diagram of a closed caption
by the program logic onto the VBI of the output signal in a
parser according to the invention; and
number of standard formats, including NABTS, CC and EDS.
With respect to FIG. 2, the invention easily expands to
FIG. 13 is a block schematic diagram of a high level view
of apreferred embodiment of the invention utilizing aVCR as 20 accommodate multiple Input Sections (tuners) 201,202,203,
anintegral component ofthe inventionaccording to the inven204, each can be tuned to different types of input. Multiple
tion.
Output Modules (decoders) 206, 207, 208, 209 are added as
well. Special effects such as picture in a picture can be impleDETAILED DESCRIPTION OF THE INVENTION
mented with multiple decoders. The Media Switch 205
25 records one program while the user is watching another. This
The invention is embodied in a multimedia time warping
means that a stream can be extracted off the disk while
system. A system according to the invention provides a mulanother stream is being stored onto the disk.
timedia storage and display system that allows the user to
Referring to FIG. 3, the incoming MPEG stream 301 has
view a television broadcast program with the option of
interleaved video 302, 305, 306 and audio 303, 304, 307
instantly reviewing previous scenes within the program. The 30 segments. These elements must be separated and recombined
invention additionally provides the user with the ability to
to create separate video 308 and audio 309 streams or buffers.
store selected television broadcast programs while simultaThis is necessary because separate decoders are used to conneously watching or reviewing another program and to view
vert MPEG elements back into audio or video analog comstoredprograms withat least the following functions: reverse,
ponents. Such separate delivery requires that time sequence
fast forward, play, pause, index, fastislow reverse play, and 35 information be generated so that the decoders may be propfastlslow play.
erly synchronized for accurate playback of the signal.
The Media Switch enables the program logic to associate
Referring to FIG. 1, a preferred embodiment of the invention has an Input Section 101, Media Switch 102, and an
proper time sequence information with each segment, possibly embedding it directly into the stream. The time sequence
Output Section 103. The Input Section 101 takes television
(TV) input streams in a multitude of forms, for example, 40 information for each segment is called a time stamp. These
National Television Standards Committee (NTSC) or PAL
time stamps are monotonically increasing and start at zero
broadcast, and digital forms such as Digital Satellite System
each time the system boots up. This allows the invention to
find any particular spot in any particular video segment. For
(DSS), Digital Broadcast Services (DBS), orAdvanced Television Standards Committee (ATSC). DBS, DSS and ATSC
example, if the system needs to read five seconds into an
are based on standards called Moving Pictures Experts Group 45 incoming contiguous video stream that is being cached, the
2 (MPEG2) and MPEG2 Transport. MPEG2 Transport is a
system simply has to start reading forward into the stream and
standard for formatting the digital data stream from the TV
look for the appropriate time stamp.
source transmitter so that a TV receiver can disassemble the
A binary search can be performed on a stored file to index
input stream to find programs in the multiplexed signal. The
into a stream. Each stream is stored as a sequence of fixed-size
Input Section 101 produces MPEG streams. An MPEG2 50 segments enabling fast binary searches because of the unitransport multiplex supports multiple programs in the same
form time stamping. If the user wants to start in the middle of
broadcast channel, with multiple video and audio feeds and
the program, the system performs a binary search of the
stored segments until it finds the appropriate spot, obtaining
private data. The Input Section 101 tunes the channel to a
particular program, extracts a specific MPEG program out of
the desired results with a minimal amount of information. If
it, and feeds it to the rest of the system.Analog TV signals are 55 the signal were instead storedas an MPEG stream, it would be
encoded into a similar MPEG format using separate video
necessary to linearly parse the stream from the beginning to
find the desired location.
and audio encoders, such that the remainder of the system is
With respect to FIG. 4, the Media Switch contains four
unaware of how the signal was obtained. Information may be
input Direct Memory Access (DMA) engines 402,403, 404,
modulated into the Vertical Blanking Interval (VBI) of the
analog TV signal in a number of standard ways; for example, 60 405 each DMA engine has an associatedbuffer 410,411,412,
413. Conceptually, each DMA engine has pointer 406, a limit
the North American Broadcast Teletext Standard (NABTS)
for that pointer 407, a next pointer 408, and a limit forthenext
may be used to modulate information onto lines 10 through 20
of an NTSC signal, while the FCC mandates the use of line 21
pointer 409. Each DMA engine is dedicated to a particular
for Closed Caption (CC) and Extended Data Services (EDS).
type of information, for example, video 402, audio 403, and
Such signals are decoded by the input section and passed to 65 parsedevents 405. The buffers 410,411,412,413are circular
and collect the specific information. The DMA engine increthe other sections as if they were delivered via an MPEG2
private data channel.
ments the pointer 406 into the associated buffer until it
US 7,529,465 B2
5
reaches the limit 407 and then loads the next pointer 408 and
limit 409. Setting the pointer 406 and next pointer 408 to the
same value, along with the corresponding limit value creates
a circular buffer. The next pointer 408 can be set to a different
address to provide vector DMA.
5
The input stream flows through a Parser 401. The Parser
401 parses the stream looking for MPEG distinguishedevents
indicating the start of video, audio or private data segments.
when the parser 401 finds a
event, it
directs the stream to the video DMA engine 402. The parser l o
401 buffers up data and
it into the video buffer 410
through the video DMA engine 402. At the same time, the
parser 401 directs an event to the event DMA engine 405
which generates an event into the event buffer 413, When the
narser 401 sees an audio event. it redirects the bvte stream to is
the audio DMA engine 403 and generates an event into the
event buffer 413. Similarly,when the parser 401 sees aprivate
data event, it directs the byte stream to the private data DMA
engine 404 and directs an event to the event buffer 413. The
Media Switch notifies the program logic via an interrupt 20
mechanism when events are placed in the event buffer.
Referring to FIGS. 4 and5, the event buffer413 is f i l l e d b ~
the parser 401 with events. Each event 501 in the event buffer
has an offset 502, event type 503, and time stamp field 504.
The parser 401 provides the type and offset of each event as it 25
is placed
the buffer.
when an
event
occurs, the event type field is set to an audio event and the
offset indicates the location in the audio buffer 411. The
program logic knows where the audio buffer 411 starts and
adds the offset to find the event in the stream. The address 30
offset 502 tells the program logic where the next event
occurred, but not where it ended. The previous event is cached
so the end of the current event can be found as well as the
length of the segment.
With respect to FIGS. 5 and 6, the program logic reads 35
accumulated events in the event buffer 602 when it is interrupted by the Media Switch 601, From these events the program logic generates a sequence of logical segments 603
which correspond to the parsed MPEG segments 615, The
program logic converts the offset 502 into the actual address 40
610 of each segment, and records the event length 609 using
the last cached event. If the stream was produced by encoding
an analog signal, it will not contain Program Time Stmp
(PTS) values, which are used by the decoders to properly
present the resulting output. Thus, the program logic uses the 45
generated time stamp 504 to calculate a simulated PTS for
each segment and places that into the logical segment tirne
stamp 607. In the case of a digital TV stream, PTS values are
already encoded in the stream. The program logic extracts this
information and places it in the logical segment time stamp 50
607.
The program logic continues collecting logical segments
603 until it reaches the fixed buffer size. When this occurs, the
program logic generates a new buffer, called a packetized
Elementary Stream (PES) 605 buffer containing these logical 55
segments 603 in order, plus ancillary control information,
Each logical segment points 604 directly to the circular buffer,e.g., the video buffer 613, filled by the Media Switch 601.
This new buffer is then passed to other logic components,
which may further process the stream in the buffer in some 60
way, such as presenting it for decoding or writing it to the
storage media. Thus, the MPEG data is not copied from one
location in memory to another by the processor. This results
in a more cost effective design since lower memory bandwidth and processor bandwidth is required.
65
A unique feature of the MPEG stream transformation into
PES buffers is that the data associated with logical segments
6
need not be present in the buffer itself, as presented above.
When a PES buffer is written to storage, these logical segments are written to the storage medium in the logical order in
which they appear. This has the effect of gathering components of the stream, whether they be in the video, audio or
private data circular buffers, into a single linear buffer of
stream data on the storage medium. The buffer is read back
from the storage medium with a single transfer from the
storage media, and the logical segment information is
updated to correspond with the actual locations in the buffer
606, Higher level program logic is unaware of this transformation, since it handles only the logical segments, thus
Streamdata is
managed without requiring that the data
ever be "pied between locations in DRAM by the
A unique aspect of the Media Switch is the ability to handle
high data rates effectively and inexpensively. It performs the
functions of taking video and audio data in, sending video and
audio data out, sending video and audio data to disk, and
extracting video and audio data from the disk on a low cost
platform. Generally, the Media Switch runs asynchronously
and autonomously with the microprocessor CPU, using its
DMA capabilities to move large quantities of information
with minimal intervention by the c p u ,
Referring FIG, 7, the input side of the Media Switch 701 is
connected to an MPEG encoder 703, There are also circuits
specific to MPEG audio 704 and vertical blanking interval
(VBI) data 702 feeding into the Media Switch 701. If a digital
TV signal is being processed instead, the MPEG encoder 703
is replaced with an MPEG2 Transport Demultiplexor,and the
MPEG audio encoder 704 and VBI decoder 702 are deleted,
The demultiplexor sends the extracted audio, video and private data
streams through the video input Media
Switch port.
The parser 705 parses the input data
from the
MPEG
703,
704 andVB1
702,
or from the transport demultiplexor in the case of a digital TV
Stream. The parser 705 detects the beginning of
of the
events in a
Or
stream, the start
the frames, the start of sequence
of the pieces of
information that the program logic needs to know about in
to both properly play back and perform 'pecial effects
the stream, e.g. fast fornard, reverse, play, pause,
and fast's1ow reverse play.
play,
The Parser 705 places tags 707 into the FIFO 706 when it
identifies video or audio segments, or is given private data.
The DMA 709 controls when these tags are taken out. The
tags 707 and the DMA addresses of the segments are placed
into the event queue 708. The frame type information,
whether it is a start of a video I-frame, video B-frame, video
P-frame, video PES, audio PES, a sequence header, an audio
frame, or private data packet, is placed into the event queue
708 along with the offset in the related circular buffer where
the piece of information was placed. The program logic OPerating in the CPU 713 examines events in the circular buffer
after it is transferred to the DRAM 714.
The Media Switch 701 has a data bus 711 that connects to
the CPU 713 and DRAM 714. An address bus 712 is also
shared between the Media Switch 701, CPU 713, and DRAM
714. A hard disk or storage device 710 is connected to one of
the ports of the Media Switch 701. The Media Switch 701
outputs streams to an MPEG video decoder 715 and a separate audio decoder 717. The audio decoder 717 signals contain audio cues generated by the system in response to the
user's commands on a remote control or other internal events.
The decoded audio output from the MPEG decoder is digi-
us 73:
7
tally mixed 718 with the separate audio signal. The resulting
signals contain video, audio, and on-screen displays and are
sent to the TV 716.
The Media Switch 701 takes in 8-bit data and sends it to the
disk, while at the same time extracts another stream of data off
of the disk and sends it to the MPEG decoder 715. All of the
DMA engines described above can be working at the same
time. The Media Switch 701 can be implemented in hardware
using a Field Programmable Gate Array (FPGA), ASIC, or
discrete logic.
Rather than having to parse through an immense data
stream looking for the start ofwhere each frame would be, the
program logic only has to look at the circular event buffer in
DRAM 714 and it can tell where the start of each frame is and
the frame type. This approach saves a large amount of CPU
power, keeping the real time requirements of the CPU 713
small. The CPU 713 does not have to be very fast at any point
in time. The Media Switch 701 gives the CPU 713 as much
time as possible to complete tasks. The parsing mechanism
705 and event queue 708 decouple the CPU 713 from parsing
the audio, video, and buffers and the real time nature of the
streams, whichallows for lower costs. It also allows the use of
a bus structure in a CPU environment that operates at a much
lower clock rate with much cheaper memory than would be
required otherwise.
The CPU 713 has the ability to queue up one DMA transfer
and can set up the next DMA transfer at its leisure. This gives
the CPU 713 large time intervals within which it can service
the DMA controller 709. The CPU 713 may respond to a
DMA interrupt within a larger time window because of the
large latency allowed. MPEG streams, whether extracted
from an MPEG2 Transport or encoded from an analog TV
signal, are typically encoded using a technique called Variable Bit Rate encoding (VBR). This technique varies the
amount of data required to represent a sequence of images by
the amount of movement between those images. This technique can greatly reduce the required bandwidth for a signal,
however sequences with rapid movement (such as a basketball game) may be encoded with much greater bandwidth
requirements. For example, the Hughes DirecTV satellite
system encodes signals with anywhere from 1 to 10 Mbls of
required bandwidth, varying from frame to frame. It would be
difficult for any computer system to keep up with suchrapidly
varying data rates without this structure.
With respect to FIG. 8, the program logic within the CPU
has three conceptual components: sources 801, transforms
802, and sinks 803. The sources 801 produce buffers of data.
Transforms 802 process buffers of data and sinks 803 consume buffers of data. A transform is responsible for allocating
and queuing the buffers of data on which it will operate.
Buffers are allocated as if "empty" to sources of data, which
give them back "full". The buffers are then queued and given
to sinks as "full", and the sink will return the buffer "empty".
A source 801 accepts data from encoders, e.g., a digital
satellite receiver. It acquires buffers for this data from the
downstream transform, packages the data into a buffer, then
pushes the buffer down the pipeline as described above. The
source object 801 does not know anything about the rest ofthe
system. The sink 803 consumes buffers, taking a buffer from
the upstream transform, sending the data to the decoder, and
then releasing the buffer for reuse.
There are two types of transforms 802 used: spatial and
temporal. Spatial transforms are transforms that perform, for
example, an image convolution or compressioddecompression on the buffered data that is passing through. Temporal
transforms are used when there is no time relation that is
expressible between buffers going in and buffers coming out
of a system. Such a transform writes the buffer to a file 804 on
the storage medium. The buffer is pulled out at a later time,
sent down the pipeline, and properly sequenced within the
stream.
Referring to FIG. 9, a C++ class hierarchy derivation of the
program logic is shown. The TiVo Media Kernel (Tmk) 904,
908, 913 mediates with the operating system kernel. The
kernel provides operations such as: memory allocation, synchronization, and threading. The TmkCore 904, 908, 913
structures memory taken from the media kernel as an object.
It provides operators, new and delete, for constructing and
deconstructing the object. Each object (source 901, transform
902, and sink 903) is multi-threaded by definition and can run
in parallel.
The TmkPipeline class 905, 909, 914 is responsible for
flow control through the system. The pipelines point to the
next pipeline in the flow from source 901 to sink 903. To
pause the pipeline, for example, an event called "pause" is
sent to the first object in the pipeline. The event is relayed on
to the next object and so on down the pipeline. This all
happens asynchronously to the data going through the pipeline. Thus, similar to applications such as telephony, control
of the flow of MPEG streams is asynchronous and separate
from the streams themselves. This allows for a simple logic
design that is at the same time powerful enough to support the
features described previously, including pause, rewind, fast
forward and others. In addition, this structure allows fast and
efficient switching between stream sources, since buffered
data can be simply discarded and decoders reset using a single
event, after which data from the new stream will pass down
the pipeline. Such a capability is needed, for example, when
switching the channel being captured by the input section, or
when switching between a live signal from the input section
and a stored stream.
The source object 901 is a TmkSource 906 and the transform object 902 is a TmkXfrm 910. These are intermediate
classes that define standard behaviors for the classes in the
pipeline. Conceptually, they handshake buffers down the
pipeline. The source object 901 takes data out of a physical
data source, such as the Media Switch, and places it into a
PES buffer. To obtain the buffer, the source object 901 asks
the down stream object in his pipeline for a buffer (allocEmptyBuf). The source object 901 is blocked until there is sufficient memory. This means that the pipeline is self-regulating;
it has automatic flow control. When the source object 901 has
filled up the buffer, it hands it back to the transform 902
through the pushFullBuf function.
The sink 903 is flow controlled as well. It calls nextFullBuf
which tells the transform 902 that it is ready for the next filled
buffer. This operation can block the sink 903 until a buffer is
ready. When the sink 903 is finished with a buffer (i.e., it has
consumed the data in the buffer) it calls releaseEmptyBuf.
ReleaseEmptyBuf gives the buffer back to the transform 902.
The transform 902 can then hand that buffer, for example,
back to the source object 901 to fill up again. In addition to the
automatic flow-controlbenefit of this method, it also provides
for limiting the amount of memory dedicated to buffers by
allowing enforcement of a fixed allocation of buffers by a
transform. This is an important feature in achieving a costeffective limited DRAM environment.
The MediaSwitch class 909 calls the allocEmptyBuf
method of the TmkClipCache 912 object and receives a PES
buffer from it. It then goes out to the circular buffers in the
Media Switch hardware and generates PES buffers. The
MediaSwitch class 909 fills the buffer up and pushes it back
to the TmkClipCache 912 object.
US 7,529,465 B2
9
10
The TmkClipCache 912 maintains a cache file 918 on a
The user can switch to different storage devices. The Pushstorage medium. It also maintains two pointers into this
Switch 1102 could output to a TmkClipWriter 1106, which
goes onto a storage device 1107 or write to the cache transcache: a push pointer 919 that shows where the next buffer
coming from the source 901 is inserted; and a current pointer
form 1103.
5
An important feature of this apparatus is the ease with
920 which points to the current buffer used.
The buffer that is pointed to by the current pointer is handed
which it can selectively capture portions of an incoming sigto thevela decoder class 916. TheVela decoder class 916 talks
nal under the control of program logic. Based on information
to the decoder 921 in the hardware. The decoder 921 produces
such as the current time, or perhaps a specific time span, or
a decoded TV signal that is subsequently encoded into an
perhaps via a remote control button press by the viewer, a
analog TV signal in NTSC, PAL or other analog format. l o TmkClipWriter 1106 may be switched on to record a portion
When the Vela decoder class 916 is finished with the buffer it
ofthe signal, and switched off at some later time. This switchcalls releaseEmptyBuf.
ing is typically caused by sending a "switch" event to the
PushSwitch 1102 object.
The structure of the classes makes the system easy to test
An additional method for triggering selective capture is
and debug. Each level can be tested separately to make sure it
performs in the appropriate manner, and the classes may be 1s through information modulated into theVBI or placed into an
gradually aggregated to achieve the desired functionality
MPEG private data channel. Data decoded from the VBI or
while retaining the ability to effectively test each object.
private data channel is passed to the program logic. The
program logic examines this data to determine if the data
The control object 917 accepts commands from the user
and sends events into the pipeline to control what the pipeline
indicates that capture of the TV signal into which it was
is doing. For example, if the user has a remote control and is 20 modulated should begin. Similarly,this information may also
indicate when recording should end, or another data item may
watching TV, the user presses pause and the control object
917 sends an event to the sink 903, that tells it pause. The sink
be modulated into the signal indicating when the capture
903 stops asking for new buffers. The current pointer 920
should end. The starting and ending indicators may be explicstays where it is at. The sink903 starts taking buffers out again
itly modulated into the signal or other information that is
when it receives another event that tells it to play. The system 25 placed into the signal in a standard fashion may be used to
is in perfect synchronization; it starts from the frame that it
encode this information.
stopped at.
With respect to FIG. 12, an example is shown which demThe remote control may also have a fast forward key. When
onstrates how the program logic scans the words contained
the fast forward key is pressed, the control object 917 sends an
within the closed caption (CC) fields to determine starting
event to the transform 902, that tells it to move forward two 30 and ending times, using particular words or phrases to trigger
seconds. The transform 902 finds that the two second time
the capture. A stream of NTSC or PAL fields 1201 is prespan requires it to move forward three buffers. It then issues a
sented. CC bytes are extracted from each odd field 1202, and
reset event to the downstream pipeline, so that any queued
entered in a circular buffer 1203 for processing by the Word
data or state that may be present in the hardware decoders is
Parser 1204. The Word Parser 1204 collects characters until it
flushed. This is a critical step, since the structure of MPEG 35 encounters a word boundary, usually space, period or other
streams requires maintenance of state across multiple frames
delineating character. Recall from above, that the MPEG
of data, and that state will be rendered invalid by repositionaudio and video segments are collected into a series of fixeding the pointer. It then moves the current pointer 920 forward
size PES buffers. A special segment is added to each PES
buffer to hold the words extracted from the CC field 1205.
three buffers. The next time the sink 903 calls nextFullBuf it
gets the new current buffer. The same method works for fast 40 Thus, the CC information is preserved in time synchronizareverse in that the transform 902 moves the current pointer
tion with the audio and video, and can be correctly presented
920 backwards.
to the viewer when the stream is displayed. This also allows
A system clock reference resides in the decoder. The systhe stored stream to be processed for CC information at the
tem clock reference is sped up for fast play or slowed down
leisure of the program logic, which spreads out load, reducing
for slow play. The sink simply asks for full buffers faster or 45 cost and improving efficiency. In such a case, the words stored
slower, depending on the clock speed. With respect to FIG.
in the special segment are simply passed to the state table
10, two other objects derived from the TmkXfrm class are
logic 1206.
placed in the pipeline for disk access. One is called TmkClipDuring stream capture, each word is looked up in a table
1206 which indicates the action to take on recognizing that
Reader 1003 and the other is called TmkClipWriter 1001.
Buffers come into the TmkClipWriter 1001 and are pushed to 50 word. This action may simply change the state of the recoga file on a storage medium 1004. TmkClipReader 1003 asks
nizer state machine 1207, or may cause the state machine
1207 to issue an action request, such as "start capture", "stop
for buffers which are taken off of a file on a storage medium
1005. A TmkClipReader 1003 provides only the allocEmpcapture", "phrase seen", or other similar requests. Indeed, a
tyBuf and pushFullBuf methods, while a TmkClipWriter
recognized word or phrase may cause the pipeline to be
1001 provides only the nextFullBuf and releaseEmptyBuf 55 switched; for example, to overlay a different audio track if
undesirable language is used in the program.
methods. A TmkClipReader 1003 therefore performs the
Note that the parsing state table 1206 and recognizer state
same function as the input, or "push" side of a TmkClipCache
1002, while a TmkClipWriter 1001 therefore performs the
machine 1207 may be modified or changed at any time. For
same function as the output, or "pull" side of a TmkClipCache
example, a different table and state machine may be provided
1002.
60 for each input channel. Alternatively, these elements may be
switched depending on the time of day, or because of other
Referring to FIG. 11, a preferred embodiment that accomplishes multiple functions is shown. A source 1101 has a TV
events.
Referring to FIG. 11, a Pullswitch is added 1104 which
signal input. The source sends data to a Pushswitch 1102
which is a transform derived from TmkXfrm. The Pushoutputs to the sink 1105. The sink 1105 calls nextFullBuf and
Switch 1102 has multiple outputs that can be switched by the 65 releaseEmptyBuf to get or return buffers from the PullSwitch
1104. The PullSwitch 1104 can have any number of inputs.
control object 1114. This means that one part of the pipeline
can be stopped and another can be started at the users whim.
One input could be an Actionclip 1113. The remote control
US 7,529,465 B2
11
12
can switch between input sources. The control object 1114
data is handled, such as requiring certain authentication
sequences andor decrypting the embedded information
sends an event to the PullSwitch 1104, telling it to switch. It
will switch from the current input source to whatever input
according to some previously acquired key. Such a method
source the control object selects.
works for normal broadcast signals as well, leading to an
An Actionclip class provides for sequencing a number of 5 efficient means of providing non-TV control information and
different stored signals in a predictable and controllable mandata to the program logic.
ner, possibly with the added control of viewer selection via a
Additionally, one skilled in the art will readily appreciate
that although a VCR is specifically mentioned above, any
remote control. Thus, it appears as a derivativeof a TmkXfrm
object that accepts a "switch" event for switching to the next
multimediarecording device (e.g., a Digitalvideo Disk-Ranl o dom Access Memory (DVD-RAM) recorder) is easily substored signal.
This allows the program logic or user to create custom
stituted in its place.
sequences of video-output. A& number of video segments
Although the invention is described herein with reference to
can be lined up and combined as if the program logic or user
the preferred embodiment, one skilled in the art will readily
were using a broadcast studio video mixer. TmkClipReaders
appreciate that other applications may be substituted for those
1108, 1109, 1110 are allocated and each is hooked into the 1s
set forth herein without departing from the spirit and scope of
PullSwitch 1104. The PullSwitch 1104 switches between the
the present invention,For example, the invention can be used
TmkC1i~Readers1108> 'Io9>
to combine video and
in the detection of gambling casino crime, The input section
audio clips. Flow control is automatic because of the way the
of the invention is connected to the casino's video surveilpipeline is constructed. The Push and Pull Switches are the
lance system. Recorded video is cached and simultaneously
same as video switches in a broadcast studio.
20
output to external VCRs. The user can switch to any video
The derived class and resulting objects described here may
feed and examine (i.e., rewind, play, slow play, fast forward,
be combined in an arbitrary way to create a number of differetc.) a specific segment of the recorded video while the exterent useful configurations for storing, retrieving, switching
nal VCRs are being loaded with the real-time input video.
and viewing of TV streams. For example, if multiple input
Accordingly, the invention should only be limited by the
and output sections are available, one input is viewed while 25
Claims included below.
another is stored, and a picture-in-picture window generated
The
daimed
is:
by the second output is used to preview previously stored
1. A Process for a digital video recorder, comprising the
streams. Such configurations represent a unique and novel
application of software transformations to achieve the funcstoring a plurality of multimedia Programs in digital form
tionality expected of expensive, sophisticated hardware solu- 30
on at least one storage device;
tions within a single cost-effective device.
wherein a user selects previously recorded multimedia prowith respect to FIG, 13, a high-level system view is shown
gram(s) from said at least one storage device;
which implements aVCR backup. The Output Module 1303
simultaneously retrieving for play back a video segment
sends TV signals to the VCR 1307. This allows the user to
from at least One
said
previously
record TV programs directly on to video tape. The invention 35
multimedia program(s) and a video segment from a mulallows the user to queue up programs from disk to be recorded
timedia program whose storage is in progress using
on to video tape and to schedule the time that the programs are
video segment identifying information generated by the
sent to the VCR 1307. Title pages (EPG data) can be sent to
digital video recorder for at least one video segment in
theVCR 1307 before a program is sent. Longer programs can
said at least One
said
previously
be scaled to fit onto smaller video tapes by speeding up the 40
multimedia program(s) and video segment identifying
play speed or dropping frames.
information generated by the digital video recorder for
The VCR 1307 output can also be routed back into the
at least one video segment in said multimedia program
Input Module 1301. In this configuration the VCR acts as a
whose storage is in progress to cause delivery of selected
backup system for the Media Switch 1302. Any overflow
storage or lower priority programming is sent to the VCR 45
video segments to an output subsystem, the digital video
recorder automatically generating video segment iden1307 for later retrieval.
tifying information for specific video segments in mulThe Input Module 1301 can decode and pass to the remaintimedia programs as each multimedia program is being
der of the system information encoded on thevertical Blankstored on said at least one storage device; and
ing Interval (VBI). The Output Module 1303 can encode into
wherein said simultaneously retrieving for play back step
the output VBI data provided by the remainder of the system. 50
allows playback rate and direction of each multimedia
The program logic may arrange to encode identifying inforprogram to be controlled individually and simultamation of various kinds into the output signal, which will be
neously to perform any of fast forward, rewind, frame
recorded onto tape using the VCR 1307. Playing this tape
step, pause, and play functions.
back into the input allows the program logic to read back this
2. The Process of claim 1, wherein said output subsystem
identifying information, such that the TV signal recorded on 55
converts said at least one of said selected multimedia
the tape is properly handled, F~~ example, a particular pro~rogram(s) said multimedia Program whose storage is in
and
gram may be recorded to tape along with information about
Progress into display output signals.
when it was recorded, the source network, etc. When this
3. The Process of claim 2, further comprising the step of
program is played back into the Input Module, this informainserting on-screen displays into a display output signal.
tion can be used to control storage of the signal, presentation 60
4. The process of claim 1, wherein a user controls playback
to the viewer, etc.
rate and direction of a multimedia program through a remote
One skilled in the art will readily appreciate that such a
control.
mechanism may be used to introduce various data items to the
program logic which are not properly conceived of as televi5. The process of claim 1, wherein said retrieving for play
sion signals. For instance, software updates or other data may 65 back step sends a multimedia program to a multimedia
be passed to the system. The program logic receiving this data
recording device, allowing a user to record said multimedia
from the television stream may impose controls on how the
program.
US 7,529,465 B2
13
14
6. The process of claim 1, further comprising the step of:
11. The apparatus of claim 10, wherein said output subcreating custom sequences of video andor audio output;
system converts said at least one of said selected multimedia
program(s) and said multimedia program whose storage is in
and
wherein said creating step allows any number of video
progress into display output signals.
andor audio segments of multimedia programs to be 5
12. The apparatus of claim 11, further comprising:
lined up and combined and stored on said at least one
a module for inserting on-screen displays into a display
storage device.
output signal.
7. The process of claim 1, further comprising the steps of:
13. The apparatus of claim 10, wherein a user controls
playback rate and direction of a multimedia program through
accepting analog andor digital multimedia program sigl o a remote control.
nals using a plurality of input signal tuners;
wherein each of said tuners is individually tuned to a spe14. The apparatus of claim 10, further comprising:
cific multimedia program; and
a multimedia recording device, wherein said retrieving for
play back module sends a multimedia program to said
converting analog multimedia program signals into a digital representation.
multimedia recording device, allowing a user to record
8. The process of claim 1, further comprising the step of: 1s
said multimedia program.
15. The apparatus of claim 10, further comprising:
synchronizing video and audio components for proper
playback.
editing means for creating custom sequences of video a n d
9. The process of claim 7, wherein an input signal tuner
or audio output; and
receives any of: software updates or data.
wherein said editing means allows any number of video
10. An apparatus for a digital video recorder, comprising: 20
andor audio segments of multimedia programs to be
a module for storing a plurality of multimedia programs in
lined up and combined and stored on said at least one
digital form on at least one storage device;
storage device.
16. The apparatus of claim 10, further comprising:
wherein a user selects previously recorded multimedia program(s) from said at least one storage device;
a plurality of input signal tuners;
wherein said tuners accept analog andor digital multimea module for simultaneously retrieving for play back a 25
dia program signals;
video segment from at least one of said selected previously recorded multimedia program(s) and a video segwherein each of said tuners is individually tuned to a spement from a multimedia program whose storage is in
cific multimedia program; and
progress using video segment identifying information
a module for converting analog multimedia program siggenerated by the digital video recorder for at least one 30
nals into a digital representation.
video segment in said at least one of said selected pre17. The apparatus of claim 10, further comprising the step
of:
viously recorded multimedia program(s) and video segment identifying information generated by the digital
means for synchronizing video and audio components for
video recorder for at least one video segment in said
proper playback.
18. The apparatus of claim 16, wherein an input signal
multimedia program whose storage is in progress to 35
cause delivery of selected video segments to an output
tuner receives any of: software updates or data.
19. The process of claim 1, wherein saidplaying back step
subsystem, the digital video recorder automatically generating video segment identifying information for speplays back said at least one of said selected multimedia procific video segments in multimedia programs as each
gram(~)
and said multimedia program whose storage is in
multimedia program is being stored on said at least one 40 progress in a picture in a picture format to a display device.
20. The process of claim 10, wherein said playing back
storage device; and
wherein said simultaneously retrieving for play back modmodule plays back said at least one of said selected multimeule allows playback rate and direction of each multimedia program(s) and saidmultimedia program whose storage is
dia program to be controlled individually and simultain progress in a picture in a picture format to a display device.
neously to perform any of: fast forward, rewind, frame 45
* * * * *
step, pause, and play functions.
UNITED STATES PATENT AND TRADEMARK OFFICE
CERTIFICATE OF CORRECTION
PATENT NO.
APPLICATION NO.
DATED
INVENTOR(S)
: 7,529,465 B2
: 101081776
: May 5,2009
: James M. Barton et al.
Page 1 of 1
It is certified that error appears in the above-identified patent and that said Letters Patent is
hereby corrected as shown below:
In Claim 20, at column 14, line 41 : "process" should be --apparatus--
Signed and Sealed this
Twenty-third Day of June, 2009
JOHN DOLL
Acting Director of the United States Patent and Trademark Ofice
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?