dwww Home | Manual pages | Find package

edid-decode(1)              General Commands Manual              edid-decode(1)

NAME
       edid-decode - Decode EDID data in human-readable format

SYNOPSIS
       edid-decode <options> [in [out]]

DESCRIPTION
       edid-decode decodes EDID monitor description data in human-readable for-
       mat.   If  [in] is not given, or [in] is '-', then the EDID will be read
       from standard input. If [out] is given then the EDID that was read  from
       [in]  is  written to [out] or to standard output if [out] is '-'. By de-
       fault the output is written as a hex dump when writing to standard  out-
       put or a raw EDID if written to a file.

       If  [out]  is  given  then edid-decode only does the conversion, it will
       skip the decoding step.

       Input files may be raw binaries or ASCII text.  ASCII input  is  scanned
       for  hex  dumps; heuristics are included to search for hexdumps in edid-
       decode(1) output (as  long  as  the  initial  hex  dump  was  included),
       xrandr(1)  property  output  and Xorg(1) log file formats, otherwise the
       data is treated as a raw hexdump.  EDID blocks  for  connected  monitors
       can  be found in /sys/class/drm/*/edid on modern Linux systems with ker-
       nel modesetting support.

       All timings are shown in a short format, for example:

           VIC  16:  1920x1080   60.000 Hz  16:9    67.500 kHz 148.500 MHz (na-
       tive)
           VIC   5:  1920x1080i  60.000 Hz  16:9    33.750 kHz  74.250 MHz
           VIC  39:  1920x1080i  50.000 Hz  16:9    31.250 kHz  72.000 MHz

       Each format starts with a timings type prefix, the  resolution,  an  op-
       tional interlaced indicator ('i'), the frame rate (field rate for inter-
       laced  formats), the picture aspect ratio, the horizontal frequency, the
       pixelclock frequency and optionally additional flags  between  parenthe-
       sis.

       Note  that  for  interlaced  formats  the frame height is given, not the
       field height. So each field in a 1920x1080i format has 540 lines.

       Detailed timings have another 2-3 lines of data:

           VIC  16:  1920x1080   60.000 Hz  16:9    67.500 kHz 148.500 MHz (na-
       tive)
                          Hfront   88 Hsync  44 Hback 148 Hpol P
                          Vfront    4 Vsync   5 Vback  36 Vpol P
           VIC   5:  1920x1080i  60.000 Hz  16:9    33.750 kHz  74.250 MHz
                          Hfront   88 Hsync  44 Hback 148 Hpol P
                          Vfront    2 Vsync   5 Vback  15 Vpol  P  Vfront  +0.5
       Odd Field
                          Vfront     2  Vsync    5 Vback  15 Vpol P Vback  +0.5
       Even Field
           VIC  39:  1920x1080i  50.000 Hz  16:9    31.250 kHz  72.000 MHz
                          Hfront   32 Hsync 168 Hback 184 Hpol P
                          Vfront   23 Vsync   5 Vback  57 Vpol N Both Fields

       These describe the horizontal and vertical front porch, sync,  backporch
       and sync polarity values. For interlaced formats there are two lines for
       the  vertical  information:  one for the Odd Field (aka Field 1) and one
       for the Even Field (aka Field 2). The vertical front porch  of  the  Odd
       Field  is actually 2.5 (hence the 'Vfront +0.5' at the end of the line),
       and the back porch of the Even Field is actually 15.5 (hence the  'Vback
       +0.5' at the end of the line).

       There is a special 'VIC 39' interlaced format where both fields have the
       same vertical timings, in that case this is marked with 'Both Fields'.

       The following timing types can be shown:

              DMT #: Discrete Monitor Timing (see DMT 1.3 standard). The number
              is the DMT ID in hexadecimal.

              CVT: Coordinated Video Timings (formula-based, see CVT 1.2 stan-
              dard)

              GTF: Generalized Timing Formula (formula-based, see GTF 1.1 stan-
              dard)

              IBM: Old IBM Timings

              Apple: Old Apple Timings

              VIC #: Video Identification Code (see CTA-861 standard). The num-
              ber is the actual
                     VIC code.

              HDMI VIC #: HDMI-specific Video Identification Code (see HDMI 2.1
              standard). The number
                     is the actual HDMI VIC code.

              DTD #: Detailed Timings Descriptor (see EDID standard). Also used
              for
                     DisplayID  Video  Timing  Modes Types I, II, VI, VII, VIII
                     and X. The number denotes that this is the Nth DTD in  the
                     Base Block and CTA Extension Blocks.

              VTDB #: 20-byte DTD or 6- or 7-byte CVT descriptor in a CTA Ex-
              tension Block.
                     The number denotes that this is the Nth such timing in the
                     CTA Extension Blocks.

              RID #@#: A CTA-861.6 Video Format Descriptor with the given Reso-
              lution ID (first
                     number) at the given framerate (second number).

       By default DTDs are shown in the long format while others are just shown
       in  the  short  format.  With the option --short-timings all timings are
       shown in short format only. With the option --long-timings  all  timings
       are shown in long format.

       Alternate  formats for long timings can be chosen via the --xmodeline or
       --fbmode options.

STANDARDS
       The following EDID standards are supported by edid-decode:

              EDID 1.3: VESA Enhanced Extended Display Identication Data Stan-
              dard, Release A, Revision 1

              EDID 1.4: VESA Enhanced Extended Display Identication Data Stan-
              dard, Release A, Revision 2

              DisplayID 1.3: VESA Display Identification Data (DisplayID) Stan-
              dard, Version 1.3

              DisplayID 2.1: VESA DisplayID Standard, Version 2.1

              DI-EXT: VESA Display Information Extension Block Standard, Re-
              lease A

              LS-EXT: VESA Enhanced EDID Localized String Extension Standard,
              Release A

              VTB-EXT: VESA Video Timing Block Extension Data Standard, Release
              A

              DTCDB: VESA Display Transfer Characteristics Data Block Standard,
              Version 1.0

              DDDB: VESA Display Device Data Block (DDDB) Standard, Version 1

              HDMI 1.4b: High-Definition Multimedia Interface, Version 1.4b

              HDMI 2.1: High-Definition Multimedia Interface, Version 2.1

              HDMI 2.1: Amendment A1 to HDMI Specification Version 2.1

              CTA-861-H: A DTV Profile for Uncompressed High Speed Digital In-
              terfaces

              CTA-861.6: Improvements on Audio and Video Signaling

              SPWG Notebook Panel Specification, Version 3.5

              EPI Embedded Panel Interface, Revision 1.0

              Microsoft EDID extension for head-mounted and specialized moni-
              tors, Version 3

       The following related standards are also used by edid-decode:

              DMT 1.3: VESA and Industry Standards and Guidelines for Computer
              Display Monitor Timing (DMT), Version 1.0, Rev. 13

              CVT 2.0: VESA Coordinated Video Timings (CVT) Standard, Version
              2.0

              CVT 1.2: VESA Coordinated Video Timings (CVT) Standard, Version
              1.2

              CVT 1.2: VESA CVT v1.2 Errata E2

              GTF 1.1: VESA Generalized Timing Formula Standard, Version: 1.1

OPTIONS
       -h, --help
              Prints the help message.

       -o, --output-format <fmt>
              If [out] is specified, then write the EDID in format <fmt>.

              The output format can be one of:
              hex: hex numbers in ascii text (default for stdout)
              raw: binary data (default unless writing to stdout)
              carray: c-program struct
              xml: XML data

       -c, --check
              Check if the EDID conforms to the standards. Warnings  and  fail-
              ures are reported at the end.

       -C, --check-inline
              Check  if  the EDID conforms to the standards. Warnings and fail-
              ures are reported as they happen.

       -n, --native-resolution
              Report the native resolution at the end. There  may  be  multiple
              native  resolution  reports  depending on whether the Source only
              parses Block 0 (e.g. DVI outputs) or Block 0 and the CTA-861  Ex-
              tension  Blocks  (HDMI),  or  just the DisplayID Extension Blocks
              (typical for DisplayPort). If all blocks contain the same  native
              resolution, then only that resolution is reported. For older dis-
              plays  there  may be two separate native resolutions: progressive
              and interlaced.

       -p, --preferred-timings
              Report the preferred timings at the end. There  may  be  multiple
              preferred  timing  reports  depending  on whether the Source only
              parses Block 0 (e.g. DVI outputs), or Block 0 and the CTA-861 Ex-
              tension Blocks (HDMI), or Block 0  and  the  DisplayID  Extension
              Blocks (typical for DisplayPort).

       --diagonal <inches>
              Specify  the  diagonal of the display in inches. This will enable
              additional checks for the image size, checking if it  corresponds
              to the diagonal. This assumes square pixels.

       -P, --physical-address
              Just  report  the  HDMI Source Physical Address and nothing else.
              Reports f.f.f.f if the EDID could not be parsed, or if there  was
              no  CTA-861  Vendor-Specific Data Block with OUI 00-0C-03. Other-
              wise it reports the Source Physical Address as provided  in  that
              Data  Block. This can be used as input to HDMI CEC utilities such
              as the linux cec-ctl(1) utility.

       -S, --short-timings
              Report all video timings in a short format.

       -L, --long-timings
              Report all video timings in a long format.

       -N, --ntsc
              Report the video timings  with  values  suitable  for  NTSC-based
              video.  E.g., this will show refresh rates of 29.97 Hz instead of
              30 Hz.  This is only done for timings with refresh rates that are
              a multiple of 6.

       -X, --xmodeline
              Report  all  long video timings in the ModeLine format as defined
              in xorg.conf(5).  This ModeLine can be used in the xorg.conf file
              or passed to xrandr(1) with the xrandr --newmode option.

       -F, --fbmode
              Report all long video timings in the video mode format as defined
              in fb.modes(5).

       -V, --v4l2-timings
              Report all long video timings in the video mode format as defined
              in the linux header v4l2-dv-timings.h for use with the V4L2  VID-
              IOC_S_DV_TIMINGS ioctl.

       -s, --skip-hex-dump
              Skip the initial hex dump of the EDID.

       -H, --only-hex-dump
              Only show the hex dump of the EDID, then exit.

       --skip-sha
              Don't  show the SHA hash. Normally edid-decode will show the SHA,
              i.e. the hash of the git commit used to compile edid-decode. This
              uniquely identifies the version of edid-decode that  is  used  to
              generate  the  warnings and failures. But it will also change the
              output of edid-decode for every new commit in the git repository,
              even if nothing else changed in the edid-decode output.  Use this
              option to avoid including the SHA in the edid-decode output.

       --hide-serial-numbers
              Replace any serial numbers in the human readable output by '...'.
              Note that they are still easily extracted from the EDID hex  dump
              at the start.

       --version
              Show the SHA hash and the last commit date.

TIMING OPTIONS
       The following options report the timings for DMT, VIC and HDMI VIC codes
       and calculate the timings for CVT or GTF timings, based on the given pa-
       rameters.   The EDID will not be shown, although it can be used with the
       --gtf option in order to read the secondary curve parameters.

       --std <byte1>,<byte2>
              Show the standard timing represented by these two bytes.

       --dmt <dmt>
              Show the timings for the DMT with the given DMT ID.

       --vic <vic>
              Show the timings for this VIC.

       --hdmi-vic <hdmivic>
              Show the timings for this HDMI VIC.

       --cvt w=<width>,h=<height>,fps=<fps>[,rb=<rb>][,interlaced][,overscan]
              [,alt][,hblank=<hblank>][,vblank=<vblank>][,early-vsync]
              Calculate the CVT timings for the given format.

              <width> is the width  in  pixels,  <height>  is  the  frame  (not
              field!) height in lines.
              <fps> is frames per second for progressive timings and fields per
              second for interlaced timings.
              <rb>  can be 0 (no reduced blanking, default), or 1-3 for the re-
              duced blanking version.
              If interlaced is given, then this is an interlaced format.
              If overscan is given, then this is an overscanned  format.  I.e.,
              margins are required.
              If alt is given and <rb>=2, then report the timings optimized for
              video: 1000 / 1001 * <fps>.
              If  alt  is given and <rb>=3, then the horizontal blanking is 160
              instead of 80 pixels.
              If hblank is given and <rb>=3, then the  horizontal  blanking  is
              <hblank>  pixels (range of 80-200 and divisible by 8), overriding
              alt.
              If vblank is given and <rb>=3, then the vertical blanking time is
              <vblank> microseconds (460 minimum, values >  705  might  not  be
              supported by all RBv3 timings compliant source devices.
              If  early-vsync  is  given and <rb>=3, then select an early vsync
              timing.

       --gtf w=<width>,h=<height>[,fps=<fps>][,horfreq=<horfreq>][,pixclk=<pix-
       clk>]
              [,interlaced][,overscan][,sec-
              ondary][,C=<c>][,M=<m>][,K=<k>][,J=<j>]
              Calculate the GTF timings for the given format.

              <width> is the width  in  pixels,  <height>  is  the  frame  (not
              field!) height in lines.
              <fps> is frames per second for progressive timings and fields per
              second for interlaced timings.
              <horfreq> is the horizontal frequency in kHz.
              <pixclk>  is  the pixel clock frequency in MHz.  Only one of fps,
              horfreq or pixclk must be given.
              If interlaced is given, then this is an interlaced format.
              If overscan is given, then this is an overscanned  format.  I.e.,
              margins are required.
              If secondary is given, then the secondary GTF is used for reduced
              blanking, where <c>, <m>, <k> and <j> are parameters for the sec-
              ondary  curve.   If  none  of the secondary curve parameters were
              set, and an EDID file is passed as command line option, then  the
              secondary curve parameters are read from that EDID.
              The  default  secondary  curve parameters are 40 for <c>, 600 for
              <m>, 128 for <k> and 20 for <j>.  These values correspond to  the
              normal curve that GTF uses.

       --ovt (rid=<rid>|w=<width>,h=<height>),fps=<fps>
              Calculate the OVT timings for the given format.  Either specify a
              <rid>  or specify <width> and <height>.  <fps> is frames per sec-
              ond.

       --list-established-timings
              List all known Established Timings.

       --list-dmts
              List all known DMTs.

       --list-vics
              List all known VICs.

       --list-hdmi-vics
              List all known HDMI VICs.

       --list-rids
              List all known CTA-861 RIDs.

       --list-rid-timings <rid>
              List all timings for the specified <rid> or  all  known  RIDs  if
              <rid> is 0.

NOTES
       Not all fields are decoded, or decoded completely.  edid-decode does at-
       tempt  to  validate  its  input  against the relevant standards, but its
       opinions have not been double-checked with the relevant  standards  bod-
       ies, so they may be wrong.  Do not rely on the output format, as it will
       likely  change  in  future versions of the tool as additional fields and
       extensions are added.

SEE ALSO
       Xorg(1), xrandr(1), cec-ctl(1), xorg.conf(5), fb.modes(5)

AUTHORS
       edid-decode was written by Adam Jackson, with  contributions  from  Eric
       Anholt,  Damien  Lespiau, Hans Verkuil and others.  For complete history
       and the  latest  version,  see  http://git.linuxtv.org/cgit.cgi/edid-de-
       code.git

                                                                 edid-decode(1)

Generated by dwww version 1.16 on Sat Oct 3 05:59:31 CEST 2026.