輪郭を描いた線を描くための高速なアルゴリズムを探しています。このアプリケーションでは、アウトラインの幅は1ピクセルで十分です。デフォルトでもオプションでも、共通のポイントを共有している場合は、2本の線をシームレスに接続できるはずです。
アスキーアートを失礼しますが、これはおそらくそれを実証するための最良の方法です。
通常の線:
##
##
##
##
##
##
「アウトライン」行:
**
*##**
**##**
**##**
**##**
**##**
**##*
**
私はdsPIC33FJ128GP802に取り組んでいます。これは、40 MIPS(1秒あたり100万命令)が可能な小型のマイクロコントローラー/デジタルシグナルプロセッサーです。整数演算のみが可能です(加算、減算、乗算:除算は可能ですが、約19サイクルかかります)。 OSDレイヤーを同時に処理し、処理時間の3〜4 MIPSのみが計算に使用できるため、速度が重要です。ピクセルは、黒、白、透明の3つの状態を占めます。ビデオフィールドは192x128ピクセルです。これは、オープンソースプロジェクトであるSuper OSD用です:http ://code.google.com/p/super-osd/
私が考えた最初の解決策は、最初のパスで輪郭が描かれたピクセルと2番目のパスで通常のピクセルを持つ3x3の長方形を描画することでしたが、すべてのピクセルについて少なくとも3ピクセルが上書きされ、それらの描画に費やされた時間が無駄になるため、これは遅くなる可能性があります。だから私はもっと速い方法を探しています。各ピクセルのコストは約30サイクルです。100ピクセルの長さの線を描画するには、ターゲットは<50、000サイクルです。