From: ap105053@kivikkorastas.cs.tut.fi (Antti Paarlahti) Newsgroups: rec.video Subject: Macrovision FAQ v1.0 Organization: Tampere University of Technology, Finland, Europe Since this copy protection thread has surfaced again, I might offer you some reading. I have appointed myself as the maintainer of the Macrovision FAQ, because nobody else has done so :-) ap105053@cs.tut.fi .EQU "Antti Paarlahti" ; From Finland * This signature intentionally left blank. ----8<--------8<--------8<--------8<--------8<--------8<--------8<---- MACROVISION FAQ v1.0 ==================== Copyright Antti Paarlahti, ap105053@cs.tut.fi This file may be freely distributed in electronic form as long as it stays complete. This article has been built upon my original "Macrovision explained"-one that was posted to rec.video some time ago. Completely new in this version is a "reader-friendly front-end", i.e. an explanation for general audiences without technical background. Also some minor modifications have been done to the technical section. 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. Contents :::::::: A. What?? B. A non-technical explanation C. A technical explanation A. WHAT?? ========= 1. What is Macrovision? Macrovision is a videotape copy protection method for VHS video cassette recorders. It is used on pre-recorded videotapes, and it seems to be more common in North America than in Europe. If you want a tape that will have Macrovision, get a Disney one. (Someone else might know who invented, marketed and/or used it, etc.) 2. What does it look like? When dubbing a protected tape, the picture that has gone through the recording VCR will get dark and then normal again periodically. The picture may also become unstable when it is at its darkest. 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 adjustement 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. 3. Is there an easy and economical way to get rid of it? Not really. There are three main alternatives: - Modify the VCR. It is easy in principle, just change the value of one capacitor or resistor in the destination deck. The problem is, you'd probably have to get a service manual to find out which one. Furthermore, you still don't get rid of the protection; it just makes the copying possible. - Make an eliminator yourself. It is a relatively straightforward task (more in the technical section), _if_ you know electronics. Most people don't, unfortunately. - Buy a commercial "stabilizer". This method is definitely easy, but not the cheapest. B. A non-technical explanation ============================== Here is a simple explanation of how the method works. It exploits the automatic gain control (AGC) circuit in the recorder. The purpose of the AGC is to adjust the level of the video signal in such a way that the recording capabilities of the tape are fully used. This means that weak signals are amplified and strong ones are attenuated. 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. 1. My friend has a VHS VCR that is not affected. How is this possible? The proper behaviour 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. 2. I have heard that 8mm video is not affected by it. Is this true? 8mm video is not affected by Macrovision, because it is totally separate >from VHS. There is no need to have AGC circuits that bear any resemblance to JVC ones. Of course, 8mm recorders do not remove the protection, so any subsequent VHS dub will again be unwatchable. 3. Can Macrovision be defeated by copying via the aerial inputs/outputs? No, it can't. There was some ancient method that could be eliminated like that, but it is now long dead. Macrovision is so integrated in the video signal that these simple tricks will not work. 4. There are many mail-order companies in the USA selling those boxes. Can I buy one and use it in Europe? No, not really. You might get some improvement, but the protection timings are sufficiently different to keep it from working properly. 5. My TV does not get a stable picture, when I watch rental tapes. Could this be a fault of the copy protection? Yes, very likely. Macrovision signals resemble false synchronization pulses, and some sets mistake them for the real ones. 6. Can laserdiscs have Macrovision? Apparently no. First of all, it is technically difficult, because the region used by Macrovision is also used to hold control data for the laserdisc players. Secondly, as long as the laserdisc market stays as a niche market, the distributors will not pressure the manufacturers to change the specs. C. A technical explanation ========================== In this part, I represent the empirical data about "Macrovision in action" that I have gathered with my trusty 20+ year old oscilloscope. The main topics are: - current PAL Macrovision - old NTSC Macrovision ==>> REQUEST: If anyone can analyze the rumoured new NTSC Macrovision and send the data to me, I'd be very grateful. It's pretty hard to get NTSC tapes here. Tapes that I used were Disney's Beauty and the Beast (PAL) and 101 Dalmatians (NTSC). 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_. Macrovision =========== So, what is the trick with Macrovision? In order to understand that, some knowledge of VHS AGC circuits is needed (AGC==Automatic Gain Control). The AGC circuits adjust the amplitude of the video (luminance) signal by measuring the voltage difference between the bottom of the horizontal sync and the back (rear) porch (see picture 3). Chrominance AGC is measured from the color burst. 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: - React _fast_ (in a few lines time) to an apparent increase in amplitude by attenuating the signal. - React _slowly_ (in a few frames time) to an apparent decrease in amplitude by amplifying the signal. In the following pictures '|' represents a vertical synchronization pulse. Because of interlacing, the sync pulses of corresponding lines in different fields are spaced 1/2 lines apart. The fields are drawn on top of another because 1) my 'scope shows them like this, and 2) the fields are nearly identical anyway. The scale of the video signal pictures: - sync bottoms are 2 characters below black level - white level is 5 characters above black level - Macrovision signal peaks are 6 characters above black level (a reasonably good approximation) Picture 1: PAL vertical blanking region with Macrovision -------------------------------------------------------- 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 7 I'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". Picture 2: NTSC vertical blanking region with Macrovision --------------------------------------------------------- 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 2 As 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. Picture 3: PAL/NTSC normal line ------------------------------- 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. Picture 4: PAL Macrovision line ------------------------------- 0 1 2 3 4 5 6 0 1 0123456789012345678901234567890123456789012345678901234567890123012345678901 _ _ _ _ _ _ _ _ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _MM__ | | | | | | | | | | | | | |__________________ _MM__ | | | WW | | | | | | | | | | | | | | | | WW | | | | |_| |_| |_| |_| |_| |_| |_| |____| |_| | Picture 5: NTSC Macrovision line -------------------------------- 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. Picture 6: Pulsating cycles, PAL -------------------------------- _____________________ ___... / \ 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 = frames Here is where the two regions differ. When R1 rises to ~60% of max amplitude, R2 goes to black. Otherwise they change in parallel. Picture 7:Pulsating cycles, NTSC -------------------------------- ____________________..._________________ _____... / \ / / \ / / \ / / \ / / \ / / \_______/ : : : : : : :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. How to eliminate ---------------- Here is a small disclaimer-type paragraph: I have built an eliminator and have used it for backing up my own precious videotapes. Try, for example, get a replacement for your damaged "The Little Mermaid" videotape. You're lucky, if you succeed. I almost never rent videotapes; the picture sucks and they are usually "pan-and-scan" transfers. And the last reason: I'm a hardware hacker, so I did it just for the heck of it. 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 higly unsatisfactory. Reasons: 1) The circuit assumes that the incoming video signal has a certain amplitude ==> it uses fixed voltages and signal levels, which do not work properly (because of varying input level and unaccurate clamping). 2) Too many cheap electronic switches along the signal path ==> visibly worsened picture quality (soft, color fluctuations). 3) Chops off color burst from protected lines ==> horrible color purity errors near the top edge of the picture (perhaps the most visible error). Below is a block diagram of my currently satisfactorily working device. It resembles only remotely the EE one. The basic idea is that the Macrovision pulses are replaced with a black level. I challenge anyone to make a simpler device. Picture 8: Block diagram ------------------------ 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: - Sync separator is the small and cheap LM1881. Only vertical sync and burst gate are used. I mention the explixit type here, because the device is practically built around it and because it replaces a whole chunk of analog electronics. - The sample and hold circuit is used to sample the black level. Although the sampling occurs at color burst time, I have not experienced any difficulties. 2 opamps, 1 electronic switch and a capacitor make a wonderful S&H circuit. The sampling input is from the output of the video switch, because the false syncs trigger LM1881, too. - The delay block delays the vertical sync until the Macrovision region is about to begin. - MMV 1 (monostable multivibrator) is triggered when the Macrovision region starts and produces a pulse that lasts until the end of the region. - MMV 2 is triggered at the end of the burst gate and it produces a pulse that lasts about 45 us == until all false syncs are gone. This MMV must not be retriggerable within the pulse, because the false syncs come through LM1881 and try to retrigger. - The video output buffer can be a transistor or two. It does not need to have any voltage gain, because the VCR has the AGC circuits. If it doesn't, you dont't need this circuit in the first place! I do have the whole circuit as a 2-color IFF-ILBM picture (Amiga native format). I am able to convert it into almost any format, if anyone is interested. Surely no-one is... B^) Other methods ============== One method that I have seen on some old rental cassettes is the changing of horizontal sync amplitude in the middle of a frame. When dubbed, the AGC circuits change the gain to keep the sync amplitude constant, and the resulting picture has very noticeable bands of bright and dim picture. Original frame v--- constant grey level ........................................................................... ___________________________________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (The amplitude change is somewhat exaggerated) Dubbed result .............. ............ . . . . .............. .................... ........... ___________________________________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Disadvantages of this method: - All the patterns I have seen have been stationary, so you can get used to it. - It is effective only in dark pictures; it is virtually unnoticeable in bright pictures. - If TV/monitor uses sync tip clamping, banding becomes visible, although it is less disturbing and reversed: .............. ...................... ......... ................ .............. ______________ ______________________ __________ | | | | | | | ________________| | | | | | | | | | | ______________| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remedy: clamp to front or back porch and re-create sync. Another method I have seen is to place a color subcarrier burst at the bottom of the horizontal synchronization pulse: ..._ _MM___... | | WW |MMMM| WWWW The 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. ----8<--------8<--------8<--------8<--------8<--------8<--------8<----