.. -*- coding: utf-8; mode: rst -*-

**********
References
**********


.. _cea608:

CEA 608-E
=========


:title:     CEA-608-E R-2014 "Line 21 Data Services"

:author:    Consumer Electronics Association (http://www.ce.org)

.. _en300294:

EN 300 294
==========


:title:     EN 300 294 "625-line television Wide Screen Signalling (WSS)"

:author:    European Telecommunication Standards Institute (http://www.etsi.org)

.. _ets300231:

ETS 300 231
===========


:title:     ETS 300 231 "Specification of the domestic video Programme Delivery Control system (PDC)"

:author:    European Telecommunication Standards Institute (http://www.etsi.org)

.. _ets300706:

ETS 300 706
===========


:title:     ETS 300 706 "Enhanced Teletext specification"

:author:    European Telecommunication Standards Institute (http://www.etsi.org)

.. _mpeg2part1:

ISO 13818-1
===========


:title:     ITU-T Rec. H.222.0 | ISO/IEC 13818-1 "Information technology — Generic coding of moving pictures and associated audio information: Systems"

:author:    International Telecommunication Union (http://www.itu.ch), International Organisation for Standardisation (http://www.iso.ch)

.. _mpeg2part2:

ISO 13818-2
===========


:title:     ITU-T Rec. H.262 | ISO/IEC 13818-2 "Information technology — Generic coding of moving pictures and associated audio information: Video"

:author:    International Telecommunication Union (http://www.itu.ch), International Organisation for Standardisation (http://www.iso.ch)

.. _itu470:

ITU BT.470
==========


:title:     ITU-R Recommendation BT.470-6 "Conventional Television Systems"

:author:    International Telecommunication Union (http://www.itu.ch)

.. _itu601:

ITU BT.601
==========


:title:     ITU-R Recommendation BT.601-5 "Studio Encoding Parameters of Digital Television for Standard 4:3 and Wide-Screen 16:9 Aspect Ratios"

:author:    International Telecommunication Union (http://www.itu.ch)

.. _itu653:

ITU BT.653
==========


:title:     ITU-R Recommendation BT.653-3 "Teletext systems"

:author:    International Telecommunication Union (http://www.itu.ch)

.. _itu709:

ITU BT.709
==========


:title:     ITU-R Recommendation BT.709-5 "Parameter values for the HDTV standards for production and international programme exchange"

:author:    International Telecommunication Union (http://www.itu.ch)

.. _itu1119:

ITU BT.1119
===========


:title:     ITU-R Recommendation BT.1119 "625-line television Wide Screen Signalling (WSS)"

:author:    International Telecommunication Union (http://www.itu.ch)

.. _jfif:

JFIF
====


:title:     JPEG File Interchange Format
:subtitle:  Version 1.02

:author:    Independent JPEG Group (http://www.ijg.org)

.. _itu-t81:

ITU-T.81
========


:title:     ITU-T Recommendation T.81 "Information Technology — Digital Compression and Coding of Continous-Tone Still Images — Requirements and Guidelines"

:author:    International Telecommunication Union (http://www.itu.int)

.. _w3c-jpeg-jfif:

W3C JPEG JFIF
=============


:title:     JPEG JFIF

:author:    The World Wide Web Consortium (http://www.w3.org)

.. _smpte12m:

SMPTE 12M
=========


:title:     SMPTE 12M-1999 "Television, Audio and Film - Time and Control Code"

:author:    Society of Motion Picture and Television Engineers (http://www.smpte.org)

.. _smpte170m:

SMPTE 170M
==========


:title:     SMPTE 170M-1999 "Television - Composite Analog Video Signal - NTSC for Studio Applications"

:author:    Society of Motion Picture and Television Engineers (http://www.smpte.org)

.. _smpte240m:

SMPTE 240M
==========


:title:     SMPTE 240M-1999 "Television - Signal Parameters - 1125-Line High-Definition Production"

:author:    Society of Motion Picture and Television Engineers (http://www.smpte.org)

.. _smpte431:

SMPTE RP 431-2
==============


:title:     SMPTE RP 431-2:2011 "D-Cinema Quality - Reference Projector and Environment"

:author:    Society of Motion Picture and Television Engineers (http://www.smpte.org)

.. _smpte2084:

SMPTE ST 2084
=============


:title:     SMPTE ST 2084:2014 "High Dynamic Range Electro-Optical Transfer Function of Master Reference Displays"

:author:    Society of Motion Picture and Television Engineers (http://www.smpte.org)

.. _srgb:

sRGB
====


:title:     IEC 61966-2-1 ed1.0 "Multimedia systems and equipment - Colour measurement and management - Part 2-1: Colour management - Default RGB colour space - sRGB"

:author:    International Electrotechnical Commission (http://www.iec.ch)

.. _sycc:

sYCC
====


:title:     IEC 61966-2-1-am1 ed1.0 "Amendment 1 - Multimedia systems and equipment - Colour measurement and management - Part 2-1: Colour management - Default RGB colour space - sRGB"

:author:    International Electrotechnical Commission (http://www.iec.ch)

.. _xvycc:

xvYCC
=====


:title:     IEC 61966-2-4 ed1.0 "Multimedia systems and equipment - Colour measurement and management - Part 2-4: Colour management - Extended-gamut YCC colour space for video applications - xvYCC"

:author:    International Electrotechnical Commission (http://www.iec.ch)

.. _oprgb:

opRGB
=====


:title:     IEC 61966-2-5 "Multimedia systems and equipment - Colour measurement and management - Part 2-5: Colour management - Optional RGB colour space - opRGB"

:author:    International Electrotechnical Commission (http://www.iec.ch)

.. _itu2020:

ITU BT.2020
===========


:title:     ITU-R Recommendation BT.2020 (08/2012) "Parameter values for ultra-high definition television systems for production and international programme exchange"

:author:    International Telecommunication Union (http://www.itu.ch)

.. _tech3213:

EBU Tech 3213
=============


:title:     E.B.U. Standard for Chromaticity Tolerances for Studio Monitors"

:author:    European Broadcast Union (http://www.ebu.ch)

.. _iec62106:

IEC 62106
=========


:title:     Specification of the radio data system (RDS) for VHF/FM sound broadcasting in the frequency range from 87,5 to 108,0 MHz

:author:    International Electrotechnical Commission (http://www.iec.ch)

.. _nrsc4:

NRSC-4-B
========


:title:     NRSC-4-B: United States RBDS Standard

:author:    National Radio Systems Committee (http://www.nrscstandards.org)

.. _iso12232:

ISO 12232:2006
==============


:title:     Photography — Digital still cameras — Determination of exposure index, ISO speed ratings, standard output sensitivity, and recommended exposure index

:author:    International Organization for Standardization (http://www.iso.org)

.. _cea861:

CEA-861-E
=========


:title:     A DTV Profile for Uncompressed High Speed Digital Interfaces

:author:    Consumer Electronics Association (http://www.ce.org)

.. _vesadmt:

VESA DMT
========


:title:     VESA and Industry Standards and Guidelines for Computer Display Monitor Timing (DMT)

:author:    Video Electronics Standards Association (http://www.vesa.org)

.. _vesaedid:

EDID
====


:title:     VESA Enhanced Extended Display Identification Data Standard
:subtitle:  Release A, Revision 2

:author:    Video Electronics Standards Association (http://www.vesa.org)

.. _hdcp:

HDCP
====


:title:     High-bandwidth Digital Content Protection System
:subtitle:  Revision 1.3

:author:    Digital Content Protection LLC (http://www.digital-cp.com)

.. _hdmi:

HDMI
====


:title:     High-Definition Multimedia Interface
:subtitle:  Specification Version 1.4a

:author:    HDMI Licensing LLC (http://www.hdmi.org)

.. _hdmi2:

HDMI2
=====

:title:     High-Definition Multimedia Interface
:subtitle:  Specification Version 2.0

:author:    HDMI Licensing LLC (http://www.hdmi.org)

.. _dp:

DP
==


:title:     VESA DisplayPort Standard
:subtitle:  Version 1, Revision 2

:author:    Video Electronics Standards Association (http://www.vesa.org)

.. _poynton:

poynton
=======


:title:     Digital Video and HDTV, Algorithms and Interfaces

:author:    Charles Poynton

.. _colimg:

colimg
======


:title:     Color Imaging: Fundamentals and Applications

:author:    Erik Reinhard et al.
