# Video 関連
/rtl/video 以下にあるモジュール
## jelly_video_parameter_update
### 概要
frame start を検出してパラメータ更新信号を出す
### レジスタ仕様
アドレスはWISHBONEのワードアドレス。
レジスタ幅や初期値は parameter 指定で変更可能。
| register name |addr|R/W|size|description |
|:------------------ |:--:|:-:|:--:|:-----------------------------|
|CORE_ID |0x00|RO|32| core ID |
|CORE_VERSION |0x01|RO|32| core verion |
|CONTROL |0x04|RW| 2| bit[0]:更新予約
bit[1]:更新継続|
|INDEX |0x05|RO|--| パラメータ受付毎にインクリメント|
|FRAME_COUNT |0x06|RO|--| フレーム数カウント |
### 動作説明
各画像処理コアで処理途中にパラメータが変化すると不整合を起こすケースで次フレームを待ってパラメータ更新する機能があるものがあるが、コア内の整合性しか取れない。
本コアは、さらに画像処理コア間で不整合を起こさないために、後続コアに一斉に更新許可を出すのに用いる。
## jelly_video_format_regularizer
### 概要
AXI4-Stream Video を指定フォーマットに正規化する
### レジスタ仕様
アドレスはWISHBONEのワードアドレス。
レジスタ幅や初期値は parameter 指定で変更可能。
| register name |addr|R/W|size|description |
|:------------------ |:--:|:-:|:--:|:-----------------------------|
|CORE_ID |0x00|RO|32| core ID |
|CORE_VERSION |0x01|RO|32| core verion |
|CTL_CONTROL |0x04|RW| 2| bit[0]:有効化
bit[1]:パラメータ更新予約(自動クリア)|
|CTL_STATUS |0x05|RO| 1| DMA動作中に1になる|
|CTL_INDEX |0x07|RO|--| パラメータ受付毎にインクリメント|
|CTL_SKIP |0x08|RW| 1| 停止時に入力を堰き止めずに捨てる|
|CTL_FRM_TIMER_EN|0x0a|RW| 1| フレームタイマー有効|
|CTL_FRM_TIMEOUT |0x0b|RW|--| タイマ有効時に指定時間フレームが来なければタイムアウトして疑似フレームを生成|
|PARAM_WIDTH |0x10|RW|--| 画像幅 |
|PARAM_HEIGHT |0x11|RW|--| 画像高さ |
|PARAM_FILL |0x12|RW|--| パディング時の画素値 |
|PARAM_TIMEOUT |0x13|RW|--| フレーム転送中のデータが指定時間途切れるとタイムアウト |
### 動作説明
主に画像入力デバイスの突然の切断やデータ欠け、フォーマット不一致などにより後段のDMAの転送データ数が合わずにデッドロックをおこすなどを防止する目的のものである。
## jelly_vin_axi4s
ビデオ入力を AXI4 Stream video に変換
## jelly_vout_axi4s
AXI4 Stream video をビデオ出力に変換
## jelly_vsync_generator
ビデオ出力用の同期信号生成
## jelly_dvi_tx
DVI出力コア
## jelly_mipi_csi2_rx
MIPI-CSI2 の受信コア
## jelly_hdmi_rx
HDMI 受信コア
## jelly_vdma_axi4s_to_axi4
Video write DMA(AXI4-Stream to AXI4)
### 概要
AXI4-Stream Video を AXI4 メモリバスに書き込み転送を行う
### レジスタ仕様
アドレスはWISHBONEのワードアドレス。
レジスタ幅や初期値は parameter 指定で変更可能。
| register name |addr|R/W|size|description |
|:------------ |:--:|:-:|:--:|:-----------------------------|
|CORE_ID |0x00|RO | 32 | core ID |
|CORE_VERSION |0x01|RO | 32 | core verion |
|CTL_CONTROL |0x04|RW | 3 | bit[0]:有効化
bit[1]:パラメータ更新予約(自動クリア)
bit[2]:ワンショット転送|
|CTL_STATUS |0x05|RO | 1 |DMA動作中に1になる|
|PARAM_ADDR |0x08|RW | -- |書き込みアドレス|
|PARAM_STRIDE |0x09|RW | -- |1ラインのストライド(バイト単位)|
|PARAM_WIDTH |0x0a|RW | -- |画像幅(ピクセル単位)|
|PARAM_HEIGHT |0x0b|RW | -- |画像高さ(ピクセル単位)|
|PARAM_SIZE |0x0c|RW | -- |転送ピクセルサイズ(ピクセル単位)|
|PARAM_AWLEN |0x0f|RW | 8 |1回の最大バースト転送サイズ-1(バス幅単位)|
### 動作説明
CTL_CONTROL の bit0 が1の時に画像データが来ると転送を行う。CTL_CONTROL の bit2 が1の場合は、PARAM_SIZE 分転送すると停止する(bit0は自動クリア)。
そうでない場合は画像が来るたびに繰り返し転送を行う。
CTL_CONTROL の bit1 が1の時は転送開始や繰り返しのタイミングでパラメータが更新される。
PARAM_SIZE は PARAM_WIDTH×PARAM_HEIGHT の倍数である必要があるが、設定次第で複数フレームの一括記録が可能である。
## jelly_vdma_axi4_to_axi4s
Video read DMA(AXI4 to AXI4-Stream)
### 概要
AXI4 メモリバスから読み出して AXI4-Stream Video を出力
### レジスタ仕様
アドレスはWISHBONEのワードアドレス。
レジスタ幅や初期値は parameter 指定で変更可能。
| register name |addr|R/W|size|description |
|:------------------ |:--:|:-:|:--:|:-----------------------------|
|CORE_ID |0x00|RO | 32 | core ID |
|CORE_VERSION |0x01|RO | 32 | core verion |
|CTL_CONTROL |0x04|RW | 3 | bit[0]:有効化
bit[1]:パラメータ更新予約(自動クリア)
bit[2]:ワンショット転送|
|CTL_STATUS |0x05|RO | 1 |DMA動作中に1になる|
|PARAM_ADDR |0x08|RW | -- |読み出しアドレス|
|PARAM_STRIDE |0x09|RW | -- |1ラインのストライド(バイト単位)|
|PARAM_WIDTH |0x0a|RW | -- |画像幅(ピクセル単位)|
|PARAM_HEIGHT |0x0b|RW | -- |画像高さ(ピクセル単位)|
|PARAM_SIZE |0x0c|RW | -- |転送ピクセルサイズ(ピクセル単位)|
|PARAM_AWLEN |0x0f|RW | 8 |1回の最大バースト転送サイズ-1(バス幅単位)|
### 動作説明
CTL_CONTROL の bit0 が1の時に画像データの読出しを行う。CTL_CONTROL の bit2 が1の場合は、PARAM_SIZE分転送すると停止する(bit0は自動クリア)。
そうでない場合は画像が来るたびに繰り返し転送を行う。
CTL_CONTROL の bit1 が1の時は転送開始や繰り返しのタイミングでパラメータが更新される。
PARAM_SIZE は PARAM_WIDTH×PARAM_HEIGHT のサイズである必要がある。