13 / 24 · 概念
ラインバッファと3×3ウィンドウ
W=8,H=6で、記憶スロット数、最初の有効な受け入れ入力添字、総ウィンドウ数を計算してください。
レッスンは無料で読めます。受講登録すると進捗を保存できます。
重なるデータを近くに保持する
行優先の3×3演算には、現在の画素と、前2行の同じ列の値が必要です。2つのライン遅延がその行を供給します。水平方向シフトレジスタが各行3サンプルを保持し、ウィンドウを作ります。フレーム全体を保存せずに済みますが、最初のサンプルだけでは完全なウィンドウを作れません。データの保存と有効出力は別の条件です。
まず1チャネル、有効3×3、ストライド1、ダイレーション1から始めます。幅Wの行配列2個と明示的な3×3ウィンドウは2W+9サンプルスロットです。教材モデルの記憶量であり、普遍的な最小量ではありません。パディング、ダイレーション、別のストライド、複数チャネルには新しい遅延と有効性の分析が必要です。
到着順の計算例
1から16を含む4×4入力を流します。ゼロ始まりの受け入れ入力添字10は行2、列2の値11です。最初の完全なウィンドウは[1,2,3;5,6,7;9,10,11]です。12で[2,3,4;6,7,8;10,11,12]になります。13と14は新しい行を始め、水平方向の履歴が足りません。15と16で最後の2ウィンドウが得られます。
16受け入れ入力から添字[10,11,14,15]で4ウィンドウを作ります。毎サイクル1画素でも初期化と行境界に空きがあります。フレーム全体の率4/16と、有効区間内の瞬間出力率を区別します。
列0では水平履歴をリセットまたは無効にします。そうしないと新行の最初のサンプルと前行の最後の列が混ざります。このモデルは水平ウィンドウをクリアし、列2まで出力を抑え、行遅延は保ちます。行列カウンタは経過クロックでなく、受け入れ画素で進めます。
幅4の記憶量は17サンプルです。4Hのフレーム全体バッファと違い、高さで増えません。ただしMAC消費側には、特に複数出力チャネルで、各完全ウィンドウを処理する時間が必要です。次のレッスンで転送制御を追加します。対応する図で入力、行遅延、ウィンドウ、消費側を追ってください。
- 入力画素: 受け入れた転送でだけ進む
- 2つの行遅延: 前2行の値を取り出す
- 3x3ウィンドウ: 行2・列2から有効
- MAC消費側: 完全なウィンドウを処理または保存する
自分で考えてみましょう
W=8,H=6で、記憶スロット数、最初の有効な受け入れ入力添字、総ウィンドウ数を計算してください。
解説を見る
記憶は25スロットです。最初の有効位置は行2、列2で、添字2×8+2=18です。出力は4×6、24ウィンドウです。