|
Claims  |
|
|
We claim:
1. A wipe generator comprising:
means for storing a wipe pattern;
means for generating a threshold level;
means for comparing a portion of the wipe pattern to the threshold level
and providing a first control signal in response thereto;
means for determining a resulting video signal from a number representing a
ratio of a first video signal to a second video signal, as determined by
said wipe pattern, and providing a second control signal in response
thereto; and
means for switching between at least the first and second video signal in
response to the first and second control signals;
wherein the means for generating provides both a high threshold and a low
threshold, and
wherein the means for comparing comprises two comparators each of which is
provided with one of the high threshold and the low threshold, and each
comparator receives the wipe pattern.
2. The device of claim 1, wherein the means for storing the wipe pattern
stores a portion of one video line of said wipe pattern.
3. The device of claim 2, further comprising means for converting the
stored portion of the wipe pattern to an analog signal.
4. The device of claim 2, wherein the means for storing comprises means for
horizontally compressing the stored portion of the wipe pattern.
5. The device of claim 1, wherein the means for generating generates a gain
value for determining a transfer function for the means for comparing.
6. The device of claim 5 wherein the transfer function varies from a linear
function to a binary function.
7. The device of claim 1, wherein the means for storing includes means for
storing horizontal, vertical, and amplitude values.
8. The device of claim 7, wherein the means for comparing includes means
for comparing the stored horizontal, vertical, and amplitude values to
corresponding values of the threshold level.
9. The device of claim 1, further comprising means for scanning a memory
storing the wipe patterns in synchronization with a video reference
signal.
10. The device of claim 1, wherein the wipe pattern is interleaved with
additional data.
11. The device of claim 1, further comprising means for providing signals
to the means for comparing to control a time at which said means for
switching operates.
12. The device of claim 11, further comprising means for altering the
threshold level in response to user commands.
13. The device of claim 1, wherein the means for generating the threshold
has values defined by a user interface.
14. A method of generating a wipe video effect comprising the steps of:
storing a wipe pattern in a memory;
generating a high threshold level and a low threshold level;
providing two comparators, and providing each comparator with one of the
high threshold level and the low threshold level,
providing each comparator with the wipe pattern; and
providing from the comparators a first control signal in response to a
comparison of the wipe pattern and the provided threshold levels;
determining a resulting video signal from a number representing a ratio of
a first video signal to a second video signal, as determined by said wipe
pattern, and providing a second control signal in response thereto; and
switching between at least the first and second video signal in response to
the first and second control signals.
15. The method of claim 14 further comprising the step of providing the
wipe pattern as a portion of one video line.
16. The method of claim 14 further comprising the step of converting the
portion of the wipe pattern from a digital to analog signal and then
filtering the analog signal.
17. The method of claim 14 further comprising the step of providing a gain
value for controlling the step of comparing.
18. A wipe generator comprising:
a memory for storing a wipe pattern;
a generator for providing a high threshold level and a low threshold level;
two comparators each provided with one of the high threshold level and the
low threshold level, each comparator also provided with the wipe pattern
and providing a first control signal in response to a comparison of the
wipe pattern and the provided threshold levels;
means for determining a resulting video signal from a number representing a
ratio of a first video signal to a second video signal, as determined by
said wipe pattern, and providing a second control signal in response
thereto; and
means for switching between at least the first and second video signal in
response to the first and second control signals. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to a method and apparatus for generating wipes for
transitioning between scenes in video. More specifically, the invention
relates to user-generated wipes which can be of any configuration as
desired by the user for use with a particular video editing system.
2. Description of the Prior Art
Wipes are a video effect well known both in the video art and to the
general public. The wipe is a video (or film) special effect that seems to
replace one video image with another. In reality, the two video images
share the screen but one replaces the other in a set pattern. For
instance, a typical wipe seems to push the image off the screen from left
to right. Well-known wipe patterns include vertical wipes, horizontal
wipes, and special wipes such as the "clock" wipe (also known as the
"rotary" wipe) that replaces the images as if clock hands were sweeping
the image off the screen.
Wipes are a special form of transition between video images.
In the prior art, wipes are typically formed by digital wave form
generators in computer-based video editing. The prior art method requires
the presence of these special digital wave form generators and/or analog
wave form generators, the output of which is converted to digital form,
for forming the particular desired wipe pattern on the screen. This system
has the disadvantage that the human editor is limited to the particular
wipe patterns which are prespecified by the wave form generators. Thus, it
is not possible to have arbitrary range user-definable wipes. Also, the
additional complexity of the wave form generators makes the equipment
which generates such wipes relatively expensive.
Thus, the prior art has the disadvantage of both limiting the kind of wipes
that can be performed, and requiring relatively sophisticated and
expensive equipment to perform any sort of wipe.
SUMMARY OF THE INVENTION
In accordance with the invention, user selectable wipes are provided under
software control for computer controlled editing of video material. The
computer software controls digital hardware in the editing system to
generate any sort of wipe as desired by the editor. By storing in a memory
that is accessed synchronously to raster a number representing the
percentage of one image displayed versus another, it is possible to
generate a wide range of wipe effects. In one embodiment, the wipe is
generated by a bit map scheme which allows the user to fully control the
appearance of the wipes.
The system operates by control of the vertical and horizontal wave forms by
a pattern present in the computer memory and by control of the light
amplitude for individual pixels of both the initial and the replacing
video image. The computer memory is organized with horizontal storage
elements and vertical storage elements corresponding to the T.V.
horizontal and vertical raster. The digital values stored in each memory
location are used as input to comparators with the other input being fed
from a computer register. Adjustment of the comparator threshold via the
computer registers and comparing that threshold with the pattern in
computer memory allows formation of various wipe shapes. Thus, the wipe
shapes are completely user definable. The output and its compliment of the
comparator drives voltage controlled amplifiers (VCA's) whose transfer
function can be modified under computer control smoothly between linear
and on/off which selects between several scenes, the scenes being the
images shown on the screen which are separated by the wipe boundary. Thus,
for instance if it is desired to wipe from scene A to all white on the
display, the first VCA input would be scene A and the second VCA input
would be all white, and the wipe would transition from scene A to all
white according to the pattern selected by the editor.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a video editing system in accordance with the invention.
FIG. 2 shows a wipe generator in accordance with the invention.
FIGS. 3(a) and (b) show wipe generation in accordance with the invention.
FIGS. 4, 4A-4G show a video memory in accordance with the invention.
FIGS. 5, 5A-5I, 6, 6A-6I, 7, and 7A-7E show circuitry in accordance with
the invention.
FIGS. 8(a) and 8(b) are data location maps in accordance with the
invention.
FIGS. 9 and 10A-10C are computer programs in accordance with the invention.
DETAILED DESCRIPTION OF THE INVENTION
One embodiment of the present invention is included in a video production
system called "Video F/X" commercially available from Digital F/X, Inc.,
Mountain View, Calif. Further description of other aspects of this system
is in copending U.S. patent application Ser. No. 07/590,061, entitled
"Disk-Assisted Editing For Video Tape", invented by Steven Crane et al,
incorporated herein by reference.
FIG. 1 shows a video editing system in accordance with the invention with
conventional video signal inputs (left side) and outputs (right side) as
shown. Also included are conventional digital frame buffer 10, decoder 12,
encoder 14, multiplexer 16, crosspoint switch matrix 18, and matte
(colored field generators) generators 20.
Wipe generator 22 (described in more detail below) provides via key bus 24
wipe inputs to downstream keyer 26 which includes scene A keyer 30, scene
B keyer 32, and transition generator 34. Also shown is conventional
vertical sync generator 36 and machine control 40 for control of connected
VTR's (video tape recorders) which are not shown. The lower part of FIG. 1
shows the conventional audio portions of the system including audio
inputs, cross point switch matrix 44, and audio mixer 46.
The Wipe Generator 22 shown in detail in FIG. 2 and described below is
substantially different than conventional wipe implementations which use
ramp and parabola function generators. In the conventional approach the
ramp, triangle, and parabola functions are generated horizontally and
vertically and summed together.
As shown in FIG. 2, the portions of a video editing system which provides
software controlled wipes include a Macintosh II computer 50 for control
purposes. Digital frame buffer 10, as described in the above-mentioned
copending application, is provided as a part of a circuit board installed
in computer 50. This is a 32-bit digital frame buffer with approximately
1.5 megabytes of memory. A portion of the frame buffer 10 memory that does
not store that portion of the video image being displayed is used for the
software controlled wipe generation. Thus, a wipe pattern is drawn into
the reserved portion of the frame buffer 10.
At each horizontal retrace, i.e., each video horizontal line, the
horizontal line information in digital form is transferred from frame
buffer 10 into a FIFO 54. The size of FIFO 54 is one-quarter line. A
1/4-horizontal size of the wipe pattern is stored in memory to save data
space and transmission time. FIFO 54 expands the compressed picture to
fill the entire screen by reading out data at a clock rate slower than the
write clock. Video is provided to/from frame buffer 10 by converters 58,
56. The data in FIFO 54 is transmitted to a Data De-Interleaver 60 to
convert the 32 bits from the frame buffer 10 to two 16 bit samples. From
the Data De-Interleaver 60 the 10 bits of wipe data go to a 10 bit DAC
(Digital to Analog Converter) 62. The output of DAC 62 goes to the sample
and hold Deglitching circuit 66, which is a conventional track and hold
used to blank the output of the DAC 62 for 82 nsec after DAC 62 receives
new data. The Wipe Function signal is then passed through a 5 pole 1.5 MHz
Chebyshev low pass filter (LPF) 68 to further smooth the waveform.
Along with the wipe function, all of the analog computer controlled
voltages are also derived from the 10 bit DAC 62. A second level of sample
and holds 70 are required to time share the DAC 62 and LPF 64 between
multiple functions. The low pass filter (LPF) 64 smoothes out the
resulting decompressed waveform to compensate for only 1/4 of the nominal
640H samples normally associated with horizontal scanning.
The output of the low pass filter 64 is provided to two comparators 74.
Comparators 74 are also provided with a high threshold and a low threshold
input signal. (Implied is a third state not higher than high or lower than
low.) The high and low threshold signals are provided from a
computer-controlled threshold generator 78 which in turn is software
controlled to generate a particular wipe pattern. The high/low comparators
74 allow for setting inner, middle and outer thresholds for bordered
wipes.
FIG. 3(a) shows a wipe graphically in term of amplitude (vertical axis) vs.
time (horizontal axis) with a transition from scene A to scene B with an
interposed matte. FIG. 3(b) shows the same wipe at one instant in time, as
it would appear on the screen. The use of the comparators 74 (see FIG. 2),
with two thresholds, allows wipes which separate more than one scene,
i.e., two scenes thus allowing more complex wipe patterns. Alternately
additional levels of comparison, beyond high, between high and low, and
low will allow more scenes than two with a border.
The computer controlled threshold generator 78 also controls the gain to
the comparator 74 using a conventional voltage controlled amplifier 80
thus allowing the softness, i.e., fuzziness of the transition from one
scene to the next to be controlled so that either a harder transition or a
softer transition appearance between the two scenes may be maintained at
the wipe boundary. Higher gain corresponds to a faster transition of the
comparator. This corresponds to a sharper switch between scenes.
The output of the comparators 74 controls additional VCA's 84, 86, 88 whose
input is video signals (scenes A and B) and mattes. (Scenes are video
signals that have multiple video signals mixed together as conventional in
the video industry.)
In one embodiment, the wipe data in computer memory is in 32 bit wide
format organized to scan memory synchronous to horizontal and vertical
raster scan. Each 32 bits includes two horizontal samples of 10 bits or
more for transmission to the FIFO 54; an alternative embodiment stores the
data as run length encoded data in memory. Multiple video and matte
sources are both provided to a scene keyer/switchers 30, 32. The keyers
30, 32 accept digital, on/off, and select control commands from the
computer and priority and sense select information from the computer every
1/60th second and combine the analog switching signals from the computer
via the sample and hold 66, 70 and mixing or keying information which is
optionally contained as part of the video signal to control the voltage
controlled amplifiers 84, 86, 88. Keying in the keyers 30, 32 is
conventional, implementing the Porter compositing algorithms via
conventional VCA's 84, 86. The transition generator 34 of FIG. 1 includes
VCA's 84, 86, 88 and summers 94, 96 and has as its input for example video
scene A, video scene B, . . . , video scene i. The transition generator 34
then selects between the scenes A, B, . . . , i so as to provide the
desired "video out". The transition generator receives control for its
several VCA's 84, 86, 88 from the high/low comparators 74. The outputs of
the several VCA's 84, 86, 88 are summed together by summers 94, 96 to
provide the final video (or program) out.
A circuit board (designated in one version VID1S) is one of two analog
circuit boards (the other being designated VID1M) in the system. The video
system consists of one digital and these two analog boards. The digital
board is a conventional memory mapped video display card, with the added
ability to DMA video data to and from the two analog cards. (The memory
map is shown in FIG. 4 and described below.) The control data which is
direct memory addressed (DMA) includes data contained in the video retrace
times as well as video data during the active horizontal and verticall
scan times. VID1M and VID1S are located in a separate chassis horizontal
and vertical connected via a parallel digital cable. The VID1S board and
the board VID1M communicate electrically via conventional 40 pin and a 60
pin flat cables. The VID1S board works in either a NTSC mode or in a Y/C
mode. (NTSC is a composite video signal where the luminance and chroma
signals are spectrum interleaved. In Y/C the luminance and chroma signals
are separate. Additional connectors and switcher elements are required for
handling the two separate signals.) Switching is provided in the Y/C
configuration to allow NTSC operation through the Y channel.
The following functions (see FIG. 1) are performed by the VID1S board:
1) Video source switching for the DFB 10 (Digital Frame Buffer).
2) Sync source switching for the SYNC Generator 36.
3) Video source switching for the DSK 26 (Down Stream Keyer).
The VID1M board provides the following functions:
1) Wipe generation (Wipe generator 22)
2) Matte Generation. These are matte generators 20 of colors used for
backgrounds or for fill colors in bordered wipes.
3) Gain and offset controls for the ALPHA KEY and an EXTERNAL KEY.
4) Gain controls for the two PROGRAM INPUTS. (Video A in, Video B in)
5) Multiple level DSK 26 (Down Stream Keyer).
6) Preview Bus allows monitoring of any of the many video sources.
7) NTSC Encoder for the output of the DFB.
8) NTSC Encoder for an external RGB source (RGB in).
FIG. 4 shows diagrammatically the Frame Buffer and related timing diagrams.
(FIG. 4 includes subfigures arranged as shown in the key on FIG. 4A.) As
seen in FIG. 4A showing dimensions of Digital Frame Buffer 10, the area
from pixel 654 thru 733 on lines 0 to 485 is the Wipe Function area. This
is a time compressed (subsampled) image of the wipe. This image is shifted
out of the DFB 10 during horizontal blanking, into FIFO 54 (see FIG. 2).
The image is decompressed by reading the FIFO 54 with a clock 8 times
slower than the write clock. The 80 pixels stored in the Wipe Function
area of the DFB 10 are expanded to the same size as the active video. If
there were only 80 pixels for the wipe function horizontally, this would
yield a coarse wipe. Since the wipe data is 10 bits wide and the DFB 10 is
32 bits wide, by interleaving the data in the DFB 10 (as shown in Table 1
below) the bandwidth of the wipe generator is doubled by de-interleaving
the compacted 32 bits from the frame buffer 10 into twice the number of 16
bit values at the output of the FIFO 54.
TABLE 1
__________________________________________________________________________
##STR1##
##STR2##
__________________________________________________________________________
FIG. 5 (including subfigures arranged as shown in the key in FIG. 5A) shows
in more detail board VID1M where (see FIG. 2) data from the DFB 10 is sent
via VID1S to the VID1M data in, is time expanded via the FIFO 54, sent to
the control registers and de-interleaver 60, and converted to the various
analog control via the DAC 62 and sample and holds 66, 70.
FIG. 6 (including subfigures arranged as shown in the key in FIG. 6A) shows
the summers 94, 96 and VCA's 84, 86, 88 in more detail where two VCA's are
connected to perform the function
out=.alpha..In1+(1-.alpha.) In2
Where .alpha. is the control function in FIG. 6, then that block is labeled
"mixer" in FIG. 6.
FIG. 7 shows in detail DAC 62 and sample and holds 66, 70. (FIG. 7 includes
subfigures arranged as shown in the key in FIG. 7A.)
The computer interface is not directly implemented through a bus; the
controls (see FIG. 1) for Wipes, Mattes, Chroma Key, Downstream Keyer
(DSK), Video Switcher, and the Audio Mixer are stored in the Digital Frame
Buffer (DFB) 10 utilizing extra space in the memory which is not used for
active display video (in the horizontal and vertical blanking intervals).
The computer 50 writes into DFB 10; the memory is DMA'd to computer
control registers. The DFB 10 functions as a very large register file,
with the "register" contents being sent out over the video bus at a 60 Hz
update rate. Most of the register values are used to set analog values for
gains, colors, etc. via a 10-bit DAC 62 on the V1D1S board. DAC 62 is
time-multiplexed to provide all of the analog control voltages, plus the
Matte Generator 20 RGB values.
The advantage is that control information is transmitted to the external
analog video circuitry over the existing digital video bus, and that the
computer can interact with any of these control "registers" in real time
by accessing locations in memory which are associated with the opposite
video field from the one being displayed. This "background" type of access
requires the computer to observe the Vertical Sync interrupt and the Video
Field Flag from the DFB 10. Since all of the control information is in the
DFB 10 memory, any of the control values may be read back by the CPU at
any time.
Wipe patterns are generated as two-dimensional shapes in a 160-word by
484-line space shown in FIG. 4A in the DFB 10 memory. The Wipe values are
stored as two 10-bit words (see FIG. 4B) packed into the upper and lower
words of the DFB memory at each address in the Wipe space. As each video
line is read out of the frame buffer, the 160-word wipe information for
the next line is stored in the FIFO 54. The wipe information is then read
out of the FIFO 54 at a rate of one-fourth that of the video pixels and
sent to a 10-bit DAC 62 which generates the wipe pattern voltages. Due to
the shift in data rate, the 160-word wipe pattern for each line is evenly
distributed over the 640-pixel video display line. The higher the
compression rate the lower the accuracy of the wipes.
Matte patterns for two independent sets of mattes are stored in two 2-pixel
by 484-line spaces in the DFB 10 memory (see FIGS. 4C, 4F). Matte values
are stored as a 3-byte RGB (red green blue) value for each matte color
(identically to RGC information in the active video area of the DFB). As
with wipe patterns, the matte information for the next video display line
is stored in the FIFO 54. The matte data for each line is read out of the
FIFO 54 at the beginning of each display line and latched into a
multiplexed video DAC 62 as RGB color information for the two mattes. This
allows independent vertical gradients for each matte, and color animation
is possible by writing into the "background" matte patterns, then setting
the Matte Select bit in the Matte/DSK Control Register (see FIG. 4C) to
swap the "foreground" and "background" mattes for the next display field.
The Matte Select bit is only set during the Vertical Blanking interval
(see FIG. 4D).
Control registers for Wipes, Mattes, and Downstream Keyer (DSK)/Switcher
controls are stored in the DFB memory 10 in a 1-word by 12-line space
which is located in the vertical blanking interval portion of the even
field of the buffer (see FIG. 4B). Analog Control register values are
stored as 10-bit words in the most significant 2-bytes of the DFB memory,
while the Matte/DSK/Switcher Control Register (FIG. 4C) is 32-bits
(non-analog). Data for these controls is read out of the FIFO during the
vertical blanking interval of the even field (FIG. 4E), and latched into
multiplexed DAC 62, providing analog control voltages to the Wipe
Generator. The Matte/DSK Control register word (not an analog value) is
stored in a register. These register values are held for the next display
field, and are updated by writing to the "background" or non-displayed
register set (in the opposite field of the one currently being displayed).
The Control registers are identical for each field (even and odd lines
repeated).
The map of FIG. 8(a) shows data locations in terms of pixel and line
addresses (not memory addresses).
The map of FIG. 8(b) shows data locations in terms of pixel and line
addresses (not memory addresses)
The 10-bit words of Wipe pattern data are packed in the 32-bit long-word
space of the DFB 10 video memory as in Table 2.
TABLE 2
______________________________________
##STR3##
______________________________________
Wipe data patterns are written into the frame buffer 10 beginning at
horizontal pixel address 654 and ending at horizontal pixel address 733,
with two 10-bit words packed into each pixel address. Vertically, Wipe
pattern data is stored in the DFB memory space associated with active
video lines.
Since the Wipe data read out during each active video line is used to
generate Wipe control voltages for the next display line, the Wipe
controls for Display Line 0 will be stored in DFB memory in Line "-1".
The 8-bit bytes of Matte pattern data are packed in the least significant
three bytes of the DFB video memory, identically to YUV video data as in
Table 3.
TABLE 3
______________________________________
##STR4##
______________________________________
Matte data patterns are written into the frame buffer at pixel addresses
644, 645 (Mattes 1A and 1B), and pixel addresses 644, 650 (Mattes 2A and
2B) as shown below, with three bytes of RGB data packed into each pixel
address. Selection between display of matte A or B for Matte 1 and Matte 2
is controlled by the two Matte Select bits in the Matte/DSK/Switcher
Control register as in Table 4.
TABLE 4
__________________________________________________________________________
##STR5##
__________________________________________________________________________
Vertically, Matte data is stored in DFB memory space associated with active
video display lines. Since the Matte data read out during each active
video line is used to generate the Matte color for the next display line,
the Matte color values for Display Line 0 will be stored in DFB memory in
Line "-1". There is a two pixel buffer zone between the active video area
and the beginning of the Matte data area in the DFB memory, of addresses
which overrun the normal active video area.
The ten bit words of Control data are packed in the 32-bit long-word space
of the DFB video memory similar to Wipe data as in Table 5.
TABLE 5
______________________________________
##STR6##
______________________________________
With the exception of the Matte/DSK Control register, all of the ten bit
values set in these registers are latched into a ten bit multiplexed DAC,
which provides analog voltages to control the related functions.
Control Register words are written into the frame buffer at horizontal
pixel address 655, with two words packed into each pixel address (least
significant word is for Video Control registers, most significant for
Audio Mixer Control registers). Each line address contains two Control
words as in Table 6.
TABLE 6
______________________________________
field line adr.
______________________________________
244 WIPE 2 SOFTNESS
245 WIPE 2 THRESHOLD
246 WIPE 1 SOFTNESS
247 WIPE 1 THRESHOLD
248 V EXPANSION
249 V EXPANSION
250 U EXPANSION
251 U EXPANSION
252 Y EXPANSION
253 Y EXPANSION
254 MATTE/DSK/SW CONTROLS
______________________________________
Also provided in accordance with the invention is computer software
conventionally installed in the Macintosh computer 50 described above. An
example of a computer program in accordance with the invention is shown in
FIG. 9. The computer program (written in the C language) is a
representative program for reading a wipe pattern from disk and writing it
to the digital frame buffer (DFB) 10. As shown, the write is to DFB
locations 654 to 733 (see "WRITE" instructions).
A second computer program (also in the C language) in accordance with the
invention is shown in FIGS. 10(a) to (c). This second program is an
example which creates a circular wipe pattern and writes it to disk. The
equation for a circular wipe is shown at the last lines of FIG. 10(b).
FIG. 10(c) shows the relevant definitions.
This patent disclosure includes copyrightable material. The copyright owner
gives permission for facsimile reproduction of material in Patent Office
files, but reserves all other copyright rights whatsoever.
The above description of the invention is descriptive and not limiting.
Further embodiments of the invention will be apparent in the light of this
disclosure and the appended claims.
* * * * *
|
|
|
|
|
Description  |
|