概要
HDMI(High-Definition Multimedia Interface) と LVDS(Low Voltage Differential Signaling) は、どちらもデジタル映像・音声を伝送するインターフェースであるが、用途と普及場面が大きく異なる。
HDMI はリビングの AV 機器や PC モニターに広く使われる外部接続インターフェースであり、テレビ・プロジェクター・モニターへの映像出力を想定している。組み込み分野では Raspberry Pi やシングルボードコンピュータ(SBC)のディスプレイ出力として頻繁に登場する。
LVDS は液晶パネルやタッチスクリーンとマザーボードを直接接続するための基板間・機器内部向けインターフェースであり、産業用モニタ、車載ディスプレイ、医療機器の LCD 接続に広く採用されている。組み込み Linux 環境では SoC から直接 LVDS 信号を出力し、LCD パネルを駆動する構成が多い。
両者とも「どのように映像信号をエンコードして伝送するか」という点では TMDS(HDMI)や差動 LVDS 方式と技術的に異なるが、どちらも組み込み機器のヒューマンインターフェース(HMI)設計において重要な選択肢である。
歴史・背景
HDMI の歴史
HDMI は 2002 年に Hitachi、Matsushita(現 Panasonic)、Philips、Silicon Image、Sony、Thomson、Toshiba の 7 社によって策定された。DVI(Digital Visual Interface)をベースに、音声多重・著作権保護(HDCP)・Consumer Electronics Control(CEC)などの機能を追加したものである。
| バージョン | 年 | 最大解像度・帯域 |
|---|---|---|
| HDMI 1.0 | 2002 | 1080p、4.95 Gbps |
| HDMI 1.4 | 2009 | 4K@30Hz、10.2 Gbps、ARC 追加 |
| HDMI 2.0 | 2013 | 4K@60Hz、18 Gbps |
| HDMI 2.1 | 2017 | 8K@60Hz / 4K@120Hz、48 Gbps、eARC |
LVDS の歴史
LVDS(Low Voltage Differential Signaling)は 1994 年に ANSI/TIA-644 として標準化された汎用差動信号規格である。本来は汎用高速差動信号規格だが、液晶パネル接続用途に特化した FPD-Link(Flat Panel Display Link) として LVDS が広く使われるようになった。TI の「OpenLDI」規格や JEIDA/VESA のディスプレイパネル標準にも採用され、特に 2000〜2010 年代にノートPC・産業用モニタで主流となった。
その後、より高速な eDP(embedded DisplayPort) や MIPI DSI の普及により、新設計での採用は減少しつつあるが、産業用・車載用の既存パネルを使い続けるシステムでは現在も現役である。
技術仕様
HDMI の信号構成
HDMI は TMDS(Transition Minimized Differential Signaling) という符号化方式を使用する。
HDMI コネクタ内訳(Type A / 19ピン):
・TMDS データ 0〜2(各差動ペア:3組)
・TMDS クロック(差動ペア:1組)
・DDC(I2C ベース:EDID 読み出し用)
・CEC(制御信号:1本)
・HPD(Hot Plug Detect:1本)
・電源(5V/50mA)
・GND
TMDS 符号化: 8 ビットデータを 10 ビットに変換(8b/10b 符号)し、DC バランスを保ちながら最小限の遷移で伝送する。
| HDMI バージョン | TMDS クロック | 帯域 | 対応解像度 |
|---|---|---|---|
| 1.4 | 340 MHz | 10.2 Gbps | 4K@24Hz、1080p@120Hz |
| 2.0 | 600 MHz | 18 Gbps | 4K@60Hz |
| 2.1 | 1200 MHz | 48 Gbps | 8K@60Hz、4K@120Hz |
LVDS の信号構成
LVDS は差動ペアで伝送する。ディスプレイ接続向けの FPD-Link では以下の構成が一般的である。
シングルチャネル LVDS(〜85MHz ピクセルクロック / WXGA 程度まで):
DATA0+/DATA0- (LSBs of R,G,B + VSYNC,HSYNC,DE の一部)
DATA1+/DATA1- (中位ビット)
DATA2+/DATA2- (MSBs + 追加ビット)
CLK+/CLK- (ピクセルクロック)
デュアルチャネル LVDS(〜170MHz / Full HD 対応):
偶数列 → チャネル A
奇数列 → チャネル B
(2本の LVDS チャネルで並列転送)
LVDS の各差動ペアは 100mV 程度の電圧振幅(LVCMOS の約 1/10)で動作するため、EMI が小さく低消費電力である。
eDP(embedded DisplayPort)
HDMI/LVDS の後継として近年普及しているのが eDP である。DisplayPort の内部接続向けサブセットであり、ノートPC のマザーボード〜液晶パネル間接続に広く使われる。組み込み SoC でも eDP を採用する製品が増えている。
| 規格 | 帯域(合計) | 用途 |
|---|---|---|
| eDP 1.2 | 17.28 Gbps(4レーン) | FHD〜4K 対応 |
| eDP 1.4 | 25.92 Gbps(4レーン) | 4K HDR 対応 |
| eDP 1.5 | 77.4 Gbps(4レーン) | 8K 対応 |
動作原理
HDMI の認識フロー(Hot Plug Detection)
1. HDMI ケーブル接続 → HPD ピンが High に変化
2. ソース機器が DDC(I2C)経由でシンク機器の EDID を読み出す
(EDID = Extended Display Identification Data:対応解像度・リフレッシュレート一覧)
3. ソースが EDID に基づいて最適な映像フォーマットを選択
4. TMDS で映像データの伝送開始
5. HDCP 認証(著作権保護が必要な場合)
LVDS の接続フロー
LVDS は認証や EDID のような仕組みを持たず、単純に差動信号を受け続ける設計である。パネルの解像度・タイミングはドライバソフトウェア(Linux の場合はデバイスツリーや DRM ドライバ)で設定する必要がある。
/* Linux DRM ドライバでのパネルタイミング設定例(概略) */
static const struct drm_display_mode panel_mode = {
.clock = 148500, /* ピクセルクロック [kHz] */
.hdisplay = 1920,
.hsync_start = 2008,
.hsync_end = 2052,
.htotal = 2200,
.vdisplay = 1080,
.vsync_start = 1084,
.vsync_end = 1089,
.vtotal = 1125,
.flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
};
用途・ユースケース
Raspberry Pi の HDMI 出力
Raspberry Pi は HDMI ポート(Pi 4 はマイクロ HDMI × 2)を持ち、デスクトップ環境や映像プレーヤーの出力に使用される。組み込み用途では、デジタルサイネージや HMI パネルとして HDMI 接続のモニターを駆動するケースが多い。
# Raspberry Pi OS での解像度設定(/boot/config.txt)
hdmi_group=2 # CEA=1, DMT=2
hdmi_mode=82 # 1920x1080 60Hz
hdmi_force_hotplug=1 # HPD がなくても出力強制
産業用 HMI の LVDS ディスプレイ
産業用タッチパネル(7〜21 インチ LCD)の多くは LVDS インターフェースを採用している。i.MX6/8 系 SoC や Rockchip RK3568 など産業向け SoC は LVDS 出力ポートを内蔵しており、デバイスツリーで直接接続設定できる。
/* i.MX6 LVDS 設定例(デバイスツリー抜粋) */
&ldb {
status = "okay";
lvds-channel@0 {
fsl,data-mapping = "spwg";
fsl,data-width = <24>;
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <65000000>;
hactive = <1024>;
vactive = <768>;
hback-porch = <220>;
hfront-porch = <40>;
vback-porch = <21>;
vfront-porch = <7>;
hsync-len = <60>;
vsync-len = <10>;
};
};
};
};
車載ディスプレイ(LVDS / FPD-Link III)
車載インフォテインメント(IVI)システムでは、SoC から長距離(最大 15m)にわたって映像を伝送するために FPD-Link III(TI のシリアライザ規格、LVDS 拡張版)が使われる。CSI-2 と組み合わせてカメラ・ディスプレイ両方を 1 本のケーブルで双方向伝送する構成も可能である。
ヘッドレス組み込みシステムでの HDMI ダミー
ヘッドレス(モニターなし)で動作する組み込み Linux マシンでも、VNC やリモートデスクトップを正常に機能させるために HDMI ダミープラグを挿すことで GPU が有効化される場合がある。
実装・開発のポイント
Linux DRM/KMS フレームワーク
Linux における映像出力は DRM(Direct Rendering Manager)/KMS(Kernel Mode Setting) フレームワークで管理される。HDMI も LVDS も DRM サブシステム経由で制御され、アプリケーションは /dev/dri/card0 などを通じてアクセスする。
# 接続中のディスプレイ情報確認
modetest -M rockchip # SoC 固有のドライバ名を指定
# コネクタ・エンコーダ・CRTC のリスト表示
drm_info
EDID のカスタム設定
外部モニターに EDID がない場合(LVDS パネルや HDMI → アダプタ変換)、ソフトウェアで EDID を提供する必要がある。
# カスタム EDID バイナリを指定(Raspberry Pi)
dtparam=edid_file=/boot/edid.dat
または Linux カーネルの drm.edid_firmware カーネルパラメータで EDID ファイルを指定する。
HDMI 音声出力(ALSA / PulseAudio)
組み込み Linux で HDMI 音声を使う場合は ALSA のデバイスを確認して設定する。
# HDMI 音声デバイスの確認
aplay -l
# card 1: vc4hdmi [vc4-hdmi], device 0: MAI PCM vc4-hdmi-hifi-0 [MAI PCM vc4-hdmi-hifi-0]
# 再生テスト
aplay -D plughw:1,0 /usr/share/sounds/alsa/Front_Left.wav
他技術との比較
| 項目 | HDMI 2.0 | LVDS(シングル) | MIPI DSI(4レーン) | eDP 1.4 | DisplayPort 1.4 |
|---|---|---|---|---|---|
| 最大帯域 | 18 Gbps | 〜1 Gbps | 〜10 Gbps | 25.9 Gbps | 25.9 Gbps |
| 接続距離 | 〜5m | 〜30cm | 〜30cm | 〜1m | 〜2m |
| 主用途 | 外部モニター出力 | 産業用 LCD 内蔵 | 携帯・IoT 組み込み | ノートPC 内蔵 | PC モニター |
| 音声多重 | 対応 | 非対応 | 非対応 | 非対応 | 対応 |
| 著作権保護(HDCP) | 対応 | 非対応 | 非対応 | HDCP 2.2 | HDCP 2.2 |
| SoC 直接出力 | 対応(多くの SoC) | 対応(産業用 SoC) | 対応(ほぼすべての SoC) | 対応(増加中) | 一部対応 |
| ホットプラグ検出 | 対応 | 非対応 | 非対応 | 対応 | 対応 |
HDMI は外部モニター接続という点で抜群の互換性を持つが、長距離伝送や小型フォームファクタには不向きである。LVDS は低コストで信頼性が高く産業用途で根強い人気があるが、帯域に限界がある。新しい組み込みシステムの内部ディスプレイ接続には MIPI DSI または eDP が主流となりつつある。NVIDIA Jetson のような高性能組み込みプラットフォームでは HDMI・eDP・MIPI DSI を同時にサポートするものも多い。