Что означает “Not giving standard mode” в get-edid?

Вопрос или проблема

У меня есть монитор Dell 2007FP. Вот результат выполнения команды get-edid:

paul@cube:~$ sudo get-edid -b 3 | parse-edid
3
Это версия read-edid 3.0.2. Готовьтесь к развлечениям.
Пытаюсь использовать интерфейс i2c
Пробую только 3, как вы просили.
128-байтный EDID успешно извлечен из шины i2c 3
Похоже, i2c был успешным. Хорошего дня.
Контрольная сумма верна

Section "Monitor"
    Identifier "DELL 2007FP"
    ModelName "DELL 2007FP"
    VendorName "DEL"
    # Монитор произведен на 11-й неделе 2009 года
    # Версия EDID 1.3
    # Цифровой дисплей
    DisplaySize 410 310
    Gamma 2.20
    Option "DPMS" "true"
    Horizsync 30-83
    VertRefresh 56-76
    # Максимальная частота пикселей 170МГц
    # Не предоставляет стандартный режим: 1280x1024, 60Гц
    # Не предоставляет стандартный режим: 1600x1200, 60Гц
    # Не предоставляет стандартный режим: 1152x864, 75Гц
    Modeline    "Mode 0" +hsync +vsync 
EndSection

Что означает Не предоставляет стандартный режим? Предоставляет ли мой дисплей какую-либо информацию о видеорежиме источнику сигнала?

Просматривая монитор HP ZR24w, выполнение parse-edid из установки Ubuntu 24.04.1 LTS приводит к 6 отчетам о Не предоставляет стандартный режим:

$ sudo get-edid -b 1 | parse-edid
1
Это версия read-edid 3.0.2. Готовьтесь к развлечениям.
Пытаюсь использовать интерфейс i2c
Пробую только 1, как вы просили.
128-байтный EDID успешно извлечен из шины i2c 1
Похоже, i2c был успешным. Хорошего дня.
Контрольная сумма верна

Section "Monitor"
    Identifier "HP ZR24w"
    ModelName "HP ZR24w"
    VendorName "HWP"
    # Монитор произведен на 2-й неделе 2011 года
    # Версия EDID 1.3
    # Цифровой дисплей
    DisplaySize 540 350
    Gamma 2.20
    Option "DPMS" "true"
    Horizsync 24-80
    VertRefresh 59-61
    # Максимальная частота пикселей 170МГц
    # Не предоставляет стандартный режим: 1280x960, 60Гц
    # Не предоставляет стандартный режим: 1280x1024, 60Гц
    # Не предоставляет стандартный режим: 1440x900, 60Гц
    # Не предоставляет стандартный режим: 1600x1200, 60Гц
    # Не предоставляет стандартный режим: 1680x1050, 60Гц
    # Не предоставляет стандартный режим: 1920x1080, 60Гц
    Modeline    "Mode 0" +hsync -vsync 
EndSection

В то время как при использовании edid-decode информация о временных характеристиках отображается для 6 стандартных режимов:

$ sudo get-edid -b 1 | edid-decode
1
Это версия read-edid 3.0.2. Готовьтесь к развлечениям.
Пытаюсь использовать интерфейс i2c
Пробую только 1, как вы просили.
128-байтный EDID успешно извлечен из шины i2c 1
Похоже, i2c был успешным. Хорошего дня.
edid-decode (hex):

00 ff ff ff ff ff ff 00 22 f0 6a 28 01 01 01 01
02 15 01 03 80 36 23 78 2e fc 81 a4 55 4d 9d 25
12 50 54 21 08 00 81 40 81 80 95 00 a9 40 b3 00
d1 c0 01 01 01 01 28 3c 80 a0 70 b0 23 40 30 20
36 00 22 60 21 00 00 1a 00 00 00 fd 00 3b 3d 18
50 11 00 0a 20 20 20 20 20 20 00 00 00 fc 00 48
50 20 5a 52 32 34 77 0a 20 20 20 20 00 00 00 ff
00 43 4e 54 31 30 32 31 34 30 36 0a 20 20 00 83

----------------

Блок 0, базовый EDID:
  Версия структуры EDID и ревизия: 1.3
  Идентификация производителя и продукта:
    Производитель: HWP
    Модель: 10346
    Серийный номер: 16843009
    Изготовлено: неделя 2 2011 года
  Основные параметры и функции дисплея:
    Цифровой дисплей
    Максимальный размер изображения: 54 см x 35 см
    Гамма: 2.20
    Уровни DPMS: выключено
    Дисплей с RGB-цветом
    Привычное (sRGB) цветовое пространство является основным цветовым пространством
    Первое подробное время является предпочтительным
  Характеристики цвета:
    Красный  : 0.6435, 0.3349
    Зеленый: 0.3037, 0.6132
    Синий : 0.1464, 0.0703
    Белый: 0.3125, 0.3291
  Установленные временные характеристики I и II:
    DMT 0x04:   640x480    59.940476 Гц   4:3     31.469 кГц     25.175000 МГц
    DMT 0x09:   800x600    60.316541 Гц   4:3     37.879 кГц     40.000000 МГц
    DMT 0x10:  1024x768    60.003840 Гц   4:3     48.363 кГц     65.000000 МГц
  Стандартные временные характеристики:
    DMT 0x20:  1280x960    60.000000 Гц   4:3     60.000 кГц    108.000000 МГц
    DMT 0x23:  1280x1024   60.019740 Гц   5:4     63.981 кГц    108.000000 МГц
    DMT 0x2f:  1440x900    59.887445 Гц  16:10    55.935 кГц    106.500000 МГц
    DMT 0x33:  1600x1200   60.000000 Гц   4:3     75.000 кГц    162.000000 МГц
    DMT 0x3a:  1680x1050   59.954250 Гц  16:10    65.290 кГц    146.250000 МГц
    DMT 0x52:  1920x1080   60.000000 Гц  16:9     67.500 кГц    148.500000 МГц
  Подробные временные дескрипторы:
    DTD 1:  1920x1200   59.950171 Гц   8:5     74.038 кГц    154.000000 МГц (546 мм x 352 мм)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront    3 Vsync   6 Vback   26 Vpol N
    Пределы диапазона отображения:
      Диапазоны монитора (GTF): 59-61 Гц V, 24-80 кГц H, макс. частота точки 170 МГц
    Название продукта дисплея: 'HP ZR24w'
    Серийный номер продукта дисплея: 'CNT1021406'
Контрольная сумма: 0x83

Исходный код parse-edid.c содержит следующий блок для обработки стандартных временных характеристик:

    //Стандартные временные характеристики - поместите их после dtd's, потому что так предпочтения будут наверху.
    /* Я начал это делать, но думаю, что это не обязательно. Думаете, я не прав? Сделайте сами. Я комментирую, что вы упускаете.*/
    int refresh;
    for (i = 0x26; i < 0x36; i += 0x2) { //читаем список разрешений...
        if (!(edid[i] == 1 && edid[i+1] == 1)) { //пропускаем, если это "пустое"
            hres = (((int)edid[i]) + 31) * 8;
            switch ((edid[i+1] & 0xC0) >> 6) {
                case 0: vres = (hres * 10) / 16; //16:10 соотношение сторон
                break;
                case 1: vres = (hres * 3) / 4; //4:3
                break;
                case 2: vres = (hres * 4) / 5; //5:4
                break;
                case 3: vres = (hres * 9) / 16; //16:9
                break;
                default: diewemail("Случилось невозможное.\n");
            }
            refresh = (edid[i+1] & 0x3F) + 60;
            printf("\t#Не предоставляет стандартный режим: ");
            printf("%ix%i, %iHz\n", hres, vres, refresh);
            /*
            printf("\tMode\t\"%ix%i\"\n", hres, vres);
            printf("\t\tDotClock\t%.6f\n", (float)((hres * vres) * (((edid[i+1] & 0x3f) + 60)) / 1000000)); //(пикселей/экран) * (экран/сек) / миллион = мегапиксели/сек, также известный как dot clock в мГц
            printf("\t\tHTimings\t\n");*/

Обратите внимание, что последние 3 оператора закомментированы.

Что означает Не предоставляет стандартный режим?

В соответствии с исходным кодом parse-edid, это означает, что автор программы решил выводить Не предоставляет стандартный режим для стандартных временных режимов, вместо сообщения временной информации.

Предоставляет ли мой дисплей какую-либо информацию о видеорежиме источнику сигнала?

Если parse-edid сообщает о стандартном режиме, это означает, что монитор поддерживает данный режим.

Учитывая, что edid-decode сообщает больше информации, рекомендуется использовать edid-decode вместо этого.

Ответ или решение

Что означает "Not giving standard mode" в get-edid?

Когда в выводе утилиты get-edid отображается сообщение "Not giving standard mode", это связано с особенностями написания исходного кода утилиты parse-edid, которая интерпретирует данные EDID (Extended Display Identification Data). Давайте более подробно разберем, что происходит, и ответим на оба вопроса.

Детальное объяснение

Что такое EDID?

EDID — это стандарт, который определяет формат данных, используемый дисплеем для передачи информации о своих возможностях сигналу источника, например, компьютеру. Эти данные включают в себя информацию о поддерживаемых разрешениях, частотах обновления, а также физические размеры экрана и многое другое.

Как работает get-edid и parse-edid?

Утилита get-edid получает EDID через интерфейс I2C и передает эти данные программе parse-edid для интерпретации и вывода в человеко-читаемом формате. В исходном коде parse-edid разработчики прокомментировали некоторые строки, которые могли бы отображать тайминги стандартных режимов. Вместо этого они вывели строку "Not giving standard mode", сигнализируя, что стандартный режим распознан, но его тайминги не выводятся.

Ответ на вопрос о предоставлении информации монитором

Предоставляет ли мой монитор информацию о видеорежимах источнику сигнала?

Да, ваш монитор действительно предоставляет информацию о видеорежимах. Если утилита parse-edid отображает стандартный режим, это означает, что монитор поддерживает этот режим. Однако сам parse-edid не выводит детализированную информацию (например, горизонтальные и вертикальные тайминги) для этих стандартных режимов из-за комментариев в коде.

Рекомендации

Использование edid-decode

Как видно из предоставленной информации, edid-decode предоставляет более полное описание таймингов для стандартных режимов. Мы рекомендуем использовать edid-decode для более детализированного и точного отображения всех характеристик монитора. Кроме того, более полные данные могут быть полезны для диагностики или настройки системы.

Заключение

Используя информацию, предоставленную edid-decode, вы можете получить полное представление о возможностях вашей техники. Несмотря на то, что parse-edid не выводит все возможные тайминги, монитор передает необходимую информацию сигналу источнику, и это позволяет выбрать оптимальные режимы работы дисплея.

Такой подход способствует лучшему пониманию особенностей работы утилит для получения данных EDID и поможет сделать осознанный выбор инструментов для работы с дисплеем.

Оцените материал
Добавить комментарий

Капча загружается...