Copyright (c) 1992-1995 by Antti Paarlahti
This file may be freely distributed in electronic form as long as it stays complete.
Some material has been acquired from the Net and some (most) from my own experiments.
New contributions and new questions are most welcome. Grammar corrections are accepted, because I am not a native speaker of English.
Information presented here should be correct as far as I know, but utter rubbish may have crept in, so proceed carefully.
(Someone else might know who invented, marketed and/or used it, etc.)
Some televisions do not like Macrovision either; the top of the picture might be unstable all the time and the colors may flicker.
If you have a TV that has an adjustment for picture height or vertical hold, you can play with those. Macrovision signals can be seen as very bright and very dark regions (stripes) near the top of the picture.
In the Macrovision method, some new signals are inserted in the non-visible portion of the picture. These signals can make the VCR think that a perfectly normal picture is suddenly way, way too bright. The AGC circuit therefore darkens it until it thinks the brightness is normal. Of course, now the _real_ picture is very dark. The picture is varied between bright and dark periodically in order to defeat simple eliminators that would just amplify the dark and murky signal back to almost normal.
Why isn't the TV affected? Well, most TV sets do not have any AGC-circuits at all, and the rest behave differently from VHS ones.
The proper behavior of the AGC-circuit is very important in order to achieve good protection. Apparently the specifications were somewhat"loose" in the pre-Macrovision days, so the old (how old?) machines are not affected.
JVC, the VHS license holder, has tightened the spec and the control, so it is difficult to get an "immune" VCR, but there are some machines that are conveniently "out of spec". No, I don't know which ones.
Of course, 8mm recorders do not remove the protection, so any subsequent VHS dub will again be unwatchable.
The main topics are:
NB: From here, it gets very technical. A basic knowledge of what video signal looks like is required.
First, some basics. A television picture consists of 25/30 (PAL/NTSC) _frames_. Every frame contains a total of 625/525 _lines_ (not all are visible, though). Frames are _interlaced_, i.e. they are divided into two _fields_ that are drawn on top of another in such a way that the first field scans every alternate line and the second field 'fills in' the missing lines. The scanning is from top to bottom and from left to right.
The fields are separated by _vertical synchronization_ pulses. The lines are separated by _horizontal synchronization_ pulses. Both PAL and NTSC standards specify that those approximately 20 lines that follow a vertical sync are not to be used in forming the picture. These lines are not visible in properly adjusted TVs, so they can e.g. carry TeleText data, or, in our case, Macrovision copy protection signals (see pictures 1 and 2). The vertical sync and invisible lines form the _vertical blanking region_.
What Macrovision does is to introduce false synchronization pulses followed by false back porches at a very high voltage level (~15% over white level). The VHS VCR looks at the signal and thinks that it is fed with an extremely high-amplitude signal and adjusts the gain control to minimum --> the real picture gets very dim (see pictures 4 and 5).
The AGC response must be like this:
The scale of the video signal pictures:
Scope Interlace Macrovision regions trigger starts ........................................... : : 1 2 1 2 : : 1 Region 1 2 1 Region 2 2 : Vertical sync : 1 (between '1's) 2 1 (between '2's) 2 : : 1 2 1 2 _ _ _ _ _ ________________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |_|_|_|_|_| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 1 1 1 2 2 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 3 1 3 1 3 1 4 2 5 3 6 4 7 5 8 6 9 7 0 8 1 9 2 0 3 1 4 2 5 3 6 4 7 5 8 6 9 7 0 8 1 9 2 The number of the scanline starting after this sync pulse
: : Picture : start : ______________________... | | | | | | | | | | | | | | | | | | | | | | 3 3 3 3 3 3 3 2 3 2 3 2 3 2 3 2 3 2 0 3 1 4 2 5 3 6 4 7I'll explain those regions later. It is very easy to calculate the required timing for a Macrovision eliminator from this picture (more later, also). There are other line numbering systems, but this is "time sequential".
Scope Interlace Macrovision region Picture trigger starts ................................... start : : : : : : : : : : : Vertical sync : : : : : : : : : _ _ _ _ _ _ ____________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |_|_|_|_|_|_| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 6 6 6 6 6 6 7 7 7 1 7 1 7 1 7 1 7 1 7 1 7 1 7 1 8 1 8 1 8 1 4 2 5 3 6 4 7 5 8 6 9 7 0 8 1 9 2 0 3 1 4 2 5 3 6 4 7 5 8 6 9 7 0 8 1 9 2As can be observed, NTSC timing is a little bit tighter. I'm not sure about the line numbering, because I have no NTSC-references, so please correct me.
Now, what do those lines inside Macrovision regions contain? Back to basics, once again.
This is one normal PAL/NTSC scanline as seen on an oscilloscope screen. Time in microseconds 0 1 2 3 4 5 6 0 1 0123456789012345678901234567890123456789012345678901234567890123012345678901 ___________________________________________________ ______ | ^-- White level | | | | Color | | Arbitrary picture data | burst--v | | | | _MM_|___________________________________________________|_ _MM_|______ | WW ^-- Black level | | WW | |____| Front porch --^ ^ ^-- Back Horizontal | porch synchronization --+Here are both the PAL and NTSC Macrovision 'magic' lines that do the trick. Both are shown at their maximum amplitudes.
0 1 2 3 4 5 6 0 1 0123456789012345678901234567890123456789012345678901234567890123012345678901 _ _ _ _ _ _ _ _ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _MM__ | | | | | | | | | | | | | |__________________ _MM__ | | | WW | | | | | | | | | | | | | | | | WW | | | | |_| |_| |_| |_| |_| |_| |_| |____| |_| |
0 1 2 3 4 5 6 0 1 0123456789012345678901234567890123456789012345678901234567890123012345678901 __ __ __ __ __ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _MM__ | |__ | |__ | |__ | |_______________________ _MM__ | | | WW | | | | | | | | | | WW | | | |_| |_| |_| |_| |____| |_|The lines drawn above are quite similar. Both try to present false synchronization pulses to the VCR the first 40 microseconds or so. The rest of the line is black, because false syncs there would trigger the sync circuits in monitors/TVs and consequently the top of the picture would be very unstable. Some TVs really do suffer even now, I have seen it myself.
But that is not all. If the pulses had a constant amplitude, it would be quite easy just to increase the amplitude of the video signal and get a decent picture. Therefore the false back porch voltage level is varied according to some simple rules in order to get the brightness changes as annoying as possible.
The following pictures show, how the false back porch amplitudes change with time. The lowest level is black, the highest is "super-white". The false syncs (below black level) do not change their amplitude. The perceived brightness of the TV picture is the inverse, e.g. the highest level in the diagram means the darkest picture on the screen.
_____________________ ___... / \ R1 R1 R1 / / \ ___ ___ ___ / / \ || | | | | | | | / / \ || | | | | | | | / / \ ||___|R2 |___|R2 |___|R2 |___| / / \|| |___| |___| |___| |/ : : : :: : : : : : : : : : 2s : 7s : 2.3s ::32f:32f:32f:32f:32f:32f:32f: 2s : : : : :: : : : : : : : : 10f 2f <-- ~9s --> R1 = lines in region 1 R2 = lines in region 2 f = framesHere is where the two regions differ. When R1 rises to ~60% of max amplitude, R2 goes to black. Otherwise they change in parallel.
____________________..._________________ _____... / \ / / \ / / \ / / \ / / \ / / \_______/ : : : : : : :3.5s : 22s : 5s : 4s :3.5s : : : : : : :As can be seen, old NTSC-Macrovision cycle is very simple. Please, once again, send me information about the new one.
All the slopes and the stable regions between them are timed in seconds, because a) the timing is not so critical and b) it is difficult to say in which frame a slope starts or ends.
Macrovision elimination is _very_ simple, if you have some knowledge of electronics. My primary inspiration was:
"Macrovision decoder/blanker" Elektor Electronics, October 1988, pp. 44-47.(Note: it features an older version of Macrovision; not that different, though.)
I built roughly an equivalent circuit myself, but it was highly unsatisfactory. Reasons:
video _______ _____ _____ in >------+----->| sync |>------------>| |>-->| |>-+ | | sepa | vsync |delay| | MMV | | Pulse | | rator | | | | 1 | | that | |_______|>-------+ |_____| |_____| | lasts | LM1881 burst | region | the | | start | whole electr. 0| | | Macrov. switch ___|_ | _ | region | o | insert_black | | |<-------------+ +-----o/ |<----------------------------<|&| | |___o_| | |_|<--------+ | | | | | 1| black | |~45us pulse | | level | | that covers | | | | the false | __^_____ | | syncs | | | | | | | sample |sample_now | line_start _____ | +--->| and |<----------------+---------->| |>-+ | | hold | | MMV | | |________| | 2 | | sample black level |_____| | from back porch | | ________ | | | | | video | video +--->| output |>---------> | buffer | out |________|Some explanations:
Original frame
v--- constant grey level ........................................................................... ___________________________________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |(The amplitude change is somewhat exaggerated)
Dubbed result
.............. ............ . . . . .............. .................... ........... ___________________________________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |Disadvantages of this method:
.............. ...................... ......... ................ .............. ______________ ______________________ __________ | | | | | | | ________________| | | | | | | | | | | ______________| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |Remedy: clamp to front or back porch and re-create sync.
Another method I have seen is to place a color sub-carrier burst at the bottom of the horizontal synchronization pulse:
..._ _MM___... | | WW |MMMM| WWWWThe only effect I noticed was that the colors changed a little, when switching between 'clean' sync and 'bursted' sync. Does anyone guess what it is supposed to be doing?
OK, this is the end. Thank you for reading. Happy hacking.
Author: Mark Quattrocchi
E-Mail: mark@cygnet.CYGNETSYSTEMS
For those who plan to make one I must warn you that I take no responsibility for anything.
Notes: This also eliminates time codes and close caption information. Sorry about the cryptic schematic but what can you do when all you have is ASCII to work with. If you don't see an "+" at an intersection it isn't connected. All voltages used on A1-A6 are supplied by the two voltage regulators shown at the bottom of this schematic. The op amp, used below, must be a video op amp like the RCA CA3100.
C | | VIDEO IN O------+------| |------+----------------+---------------+ | | | | | | | | |\ ___ | | | | \ / \ (DIODE) | +----/\/\/\-----+----|- \ | | R | >----+ | +----|+ / | | | / | | |/ | ___ | /// | | +------------------------------------------------------------+ Video | In >-----+ | | Video | | In >------------>Gnd | | | | | | | | ____________ | | | LM1881 | | | 8| |1 | | +12v>---|Vcc Csync|----------+ | | .1uf 2| |5 | | +-----------||------|In Burst|-- | | 680 6| |3 | | +--/\/\/-+--------|Rset Vsync|------+ | | | .1uf | 4| |7 | | | +---||---+ +---|Gnd Field|- | | | | | |____________| | | | | | A2 | | | | | 450 750 | | Gnd>--------+-------------+--/\/\/---+---/\/\/----+ | | | | | +-------------+ | | | | | +-----------------------------------------+ | | | | | | ____________ | | | | 74LS221 | | | | 1| (1/2) |16 | | +------|A1 Vcc|----<+5v | | 2| |13 | | +5v>---+---|B1 Q1|------+ | | | 3| | | | | +---|Rst1 | | | | .1uf 14| __|4 | | |Position+--||----|C1 Q1|- | | | 10k | 15| | | +5v>----------/\/\/--+--------|R/C1 | | | | | | |____________| | | | +----+ A3 | | | +--------------------------+ | | | | | | ____________ | | | | 74LS221 | | | | 9| (1/2) |8 | | +------|A2 Gnd|---<Gnd | | 10| |5 | | +5v>---+---|B2 Q2|------------+ | | | 11| | | | | +---|Rst2 | | | | .1uf 6| __|12 | | | Width +--||---|C2 Q2|- | | | 10k | 7| | | +5v>-----------/\/\/--+-------|R/C2 | | | | | | |____________| | | | +----+ A3 | | | 750 450 | | +--/\/\/-----+----/\/\/---<Gnd | | | | | +----------------------------------+ | | | | | | | ____________ | | | | | 74LS221 | | | | | 1| (1/2) |16 | | | +----|A1 Vcc|----<+5v | | | 2| |13 | +5v>-------+------------------|B1 Q1|- | | | | 3| | | | | +--------|Rst1 | | | | .01uf 14| __|4 | | |EQ.Start +--||----|C1 Q1|------+ | | | 20k | 15| | | | | +--/\/\/--+--------|R/C1 | | | | | | |____________| | | | +----+ A4 | | | +--------------------------+ | | | | | | ____________ | | | | 74LS221 | | | | 9| (1/2) |8 | | +------|A2 Gnd|---<Gnd | | 10| |5 | | +5v>---+---|B2 Q2|- | | | 11| | | | +---|Rst2 | | | 1000pf 6| __|12 | | EQ.Width +--||---|C2 Q2|------+ | | 20k | 7| | | | | +5v>--/\/\/--+-------|R/C2 | | | | | | |____________| | | | +----+ A4 | | | | | | +------------------------------------+ | | | | | +-------------------------+ | | | | | | ____________ | | | | 74LS00 | | | | 1| |14 | | +-----|In1 Vcc|-----<+5v | | 2| |3 | +----------|In2 Out1|------+ | 7| | | | Gnd>-------|Gnd | | | |____________| | | A5 | | +------------------------------+ | | ____________ | | | LF1333 | | | 4| |5 | Gnd>---------------|Gnd V-|-----<Gnd | | 16| |12 | +----------|In1 V+|-----<+12v | | 14| |15 10uf 75 | +---------------|S1 D1|-----+--||---/\/\/----->Video Out | | | 1| | | + | | +----------|In2 | | Gnd>--------->Video Out | | 3| |2 | +----------------------|S2 D2|-----+ | |____________| | A6 | +12v>----/\/\/--<Gnd 5k Blanking __________ | 7805 | | +12v | 16-35VDC>---------+------------|In Out|-----+-------+------>+12v | | | |+ | GND>----------------+-----|Gnd | === === | | |__________| |10uf |.01uf | | | | | +----------------------+-------+------>Gnd | | __________ |10uf |.01uf | | | 7805 | === === | | | +5v | |+ | +------------|In Out|-----+-------+------>+5v | | | +-----|Gnd | |__________|
NOTES: You can replace some of the pots with fixed resistors if you like. The OFFSET pot can be replaced with a 7.85k to +12v and a 1.43k resistor to ground. The POSITION pot can be replaced with a 6.25k resistor. The WIDTH pot can be replaced with a 6.81k resistor. The BLANKING pot can be replaced with a 4.18k resistor to +12v and a 592ohm resistor to ground. I do not recommend replacing any of the other pots with fixed values. If you do use fixed resistors please skip those steps in the adjustment procedure.
Macrovision |<------------------->| ||||| ||||| ||||| ||||| _______ ____________|||||_|||||_|||||_|||||________ Video In | |_____|_____|_____| | ||||||||||||||||||||||||| | _______ ___________________________________________ Vsync (A2-pin3) |_________________| __________________________ Q1 (A3-pin13) ___| |__________________________________ ______________________________ Q2 (A3-pin5) ______________________________| |___ __ _________________________________________________________________ Q1 (A4-pin12) | | | | | ______________________________ ___ Out (A5-pin3) |__|_____|_____|_____|_____|___| ________ ___________________________________________ Video Out | |_____|_____|_____| | | | | | | |
A Single Macrovision Burst |<--------------------------------->| _ _ _ _ _ _ _ | | | | | | | | | | | | | | _________ _ | |_ | |_ | |_ | |_ | |_______ _ | |_ | |_ Video In |_| |_| |_| |_| |_| |_| |_| |_| |_| | _______________________________________________________________ Q2 (A3-pin5)___| __________ _ ___ ___ ___ ___ _________ _ ___ ___ Csync (A2-pin1) |_| |_| |_| |_| |_| |_| |_| |_| |_| | __ __________ ____ Q1 (A4-pin4) |__________________________________| |________________ __ __________ ___________________________________ ____________ Q2 (A4-pin12) |___| |___|