カーネル関数プロトタイプでは、入力および出力としてウィンドウ API を使用する必要があります。カーネル コードでは、データの読み出し/書き込みに直接ポインター参照を使用できます。
void func(input_window_int16 *w_input,
output_window_cint16 *w_output){
.....
v16int16 *ptr_in = (v16int16 *)w_input->ptr;
v8cint16 *ptr_out = (v8cint16 *)w_output->ptr;
......
}
ウィンドウ構造によりバッファー ロック トラッキング バッファー タイプ (ping/pong) が管理され、これによりサイクル数が増加する可能性があります。これは特に、ロード/ストアが順不同 (スキャッター ギャザー) の場合に言えます。ポインターを使用すると、ロードとストアに必要なサイクル数を削減できる可能性があります。
注記: ポインターを使用してデータをロードおよびストアする場合、範囲外のメモリ アクセスを回避するのは設計者の責任です。