# CGMS-A

Copy Generation Management System – Analog (CGMS-A) is a copy protection mechanism for analog television signals. It consists of a waveform inserted into the non-picture vertical blanking interval (VBI) of an analogue video signal. If a compatible recording device (for example, a DVD recorder) detects this waveform, it may block or restrict recording of the video content.
It is not the same as the broadcast flag, which is designed for use in digital television signals, although the concept is the same. There is a digital form of CGMS specified as CGMS-D which is required by the DTCP ("5C") protection standard.

## History

CGMS-A has been in existence since 1995, and has been standardized by various organizations including the IEC and EIA/CEA. It is used in devices such as PVRs/DVRs, DVD players and recorders, D-VHS, and Blu-ray recorders, as well certain television broadcasts. More recent TiVo firmware releases comply with CGMS-A signals.

## Applications

Implementation of CGMS-A is required for certain applications by DVD CCA license. D-VHS and some DVD recorders comply with CGMS-A signal on analog inputs. The technology requires minimal signal processing.
Where the source signal is analogue (e.g. VHS, analogue broadcast), the CGMS-A signalling may be present in that source.
Where the source signal is digital (e.g. DVD, digital broadcast), then the Copy Control Information (CCI) is carried in metadata in the digital transport or program stream, and a compliant hardware device (e.g. a DVD player) will read that data, and encode it into the analogue video signal generated within the device itself.
There is no blanket legal requirement for devices which record video to detect or act upon the CGMS-A information. For example, the DMCA "does not require manufacturers of consumer electronics, telecommunications or computing equipment to design their products affirmatively to respond to any particular technological measure.".

## Standardization

CGMS-A is standardized through the IEC, CEA, EIA-J and ETSI as follows:
| Video Format | Standard | Line number(s) | Bit number(s) | Type |
| 480i60 (525i / "NTSC") | IEC-61880 | 20, 283 | 7, 8 | A |
| 480i60 (525i / "NTSC") | CEA-608 | 284 | 4, 3 | – |
| 480p60 (525p) | EIA-J CPR1204-1 | 41 | – | A |
| 480p60 (525p) | IEC-61880-2 | 41 | 7, 8 | A |
| 480p60 (525p) | CEA-805 | 41 | 7, 8 | A |
| 480p60 (525p) | CEA-805 | 40 | 38 (G$_0$), 39 (G$_1$) | B |
| 720p60 | CEA-805 | 24 | 7, 8 | A |
| 720p60 | CEA-805 | 23 | 38 (G$_0$), 39 (G$_1$) | B |
| 1080i60 | CEA-805 | 19, 582 | 7, 8 | A |
| 1080i60 | CEA-805 | 18, 581 | 38 (G$_0$), 39 (G$_1$) | B |
| 576i50 (625i / "PAL") | EN-300-294 | 23 | 12, 13 | – |
| 576p50 (625p) | IEC-62375 | 43 | 12, 13 | – |
In all these standards, the CGMS-A information is only two out of many bits of information that are defined.
On 60 Hz systems (commonly known as "NTSC"), the system is highly extensible, though beyond the CGMS-A bits, only the aspect ratio of the video signal and the analogue protection system (APS) bits are commonly used. The signalling is typically present on every video frame, but CEA-805-D states that "the transmission rate for any given packet type defined in CEA-805-D shall be at least once every three frames", meaning that in theory for two out of three frames, different header values can be used to send data not defined in the standard. Type A signalling (20 bits in total; the only type defined for 480i) offers some extensibility by re-using the 14 data bits via one of the 14 undefined values for the four header bits. Type B signalling (134 bits in total) already defines bits to carry an Active Format Description, Colorimetry, Redistribution Control, and a pixel-accurate definition of the location of any letterbox or pillarbox bars in the image, plus two bytes reserved for future use. Different header bit values may also be used for further extensibility.
On 50 Hz systems (commonly, though incorrectly known as "PAL"), the bits that are widely used and interpreted as CGMS-A are not named as such, and are added at the end of an existing signalling standard originally created for the PALplus video format (but still in common use in Europe in standard PAL video) called Widescreen signaling.

### Contradicting Type A standards

Some references quote EIA-J CPR1204-1 as the authoritative reference for CGMS-A on 480p60 (525p) systems, since this was the first published standard to mention CGMS-A on 480p. This EIA-J document does not define the meaning of the bits, only their timing on the analogue video signal. The 480p signalling is based on the existing 480i standard but with a double speed clock, and IEC-61880-2 formalises this by defining bit meanings which are the same as for 480i. However, CEA-805 re-defines the aspect ratio signalling bits. Hence 480p Type A line 40 CGMMS-A data generated in accordance with CEA-805 cannot signal the aspect ratio of the video image, and in this way is incompatible with the same data generated in accordance with IEC-61880-2, and is no longer a straight "double speed clock" version of the 480i standard.

### CEA-805 CGMS-A Type B confusion

CEA-805 is now on its fourth major version (CEA-805-D), and there have been errata issued to at least one version. CEA-805-D recognises that, in respect of Type B signalling, earlier versions of the standard were unclear regarding the order of bits as represented in the analogue video signal vs as used for the CRC calculation, and also which bits were to be used for the CRC calculation. Issue D requires sink devices to perform multiple CRC calculations for Type B signalling, taking account of various possible implementations in source devices. There is no such confusion surrounding Type A signalling.

## Signalling

CEA-608-B specifies meaning of the 7-bit field placed on the data lines. The bits 4 and 3 contain the CGMS-A values, the bits 2 and 1 contain the Analog Protection System (APS) value, the bit 0 is the Analog Source Bit (ASB) specifying if the signal originates from a pre-recorded material, bits 5 and 6 are reserved.
CGMS-A is signalled by 2 bits in the vertical blanking interval (VBI) signal of analog television broadcasts according to the following matrix:
| 0 | 0 | CopyFreely | Unlimited copies may be made of the content. |
| 0 | 1 | CopyNoMore* | One generation of copies has already been made; no further copying is allowed. |
| 1 | 0 | CopyOnce | One generation of copies may be made |
| 1 | 1 | CopyNever | No copies may be made of the content. |
*CopyNoMore was not a part of the original standard. The 0,1 value originally was "Reserved".

## Removal

The signal itself can be easily stripped by normalizing the VBI, e.g. using a video stabilizer to counter the side effects from Macrovision's manipulation of the VBI. CGMS-A VBI data is commingled or generally near captioning signals, so removal of CGMS-A will likely remove captioning as well.
The scheme can be made more robust by adding the Rights Assertion Mark (RAM); when the RAM is present but CGMS-A is not, copying is denied, turning the scheme into a permission-based one. The RAM can be encoded by using the VEIL technology.