レンダリングの高速化とは別レイヤーの話になります。去年の記事でAPIレベルの考察はしていますが、今回はもう少し踏み込んで考えてみます。両APIともピクセルデータを一次元のコンテナに詰め込むメソッドです。getPixels(rect:Rectangle):ByteArrayピクセルデータの矩形領域からバイト配列を生成します。getVector(rect:Rectangle):Vector.<uint>ピクセルデータの矩形領域からベクター配列を生成します。「取得したデータがコンテナにどんな形で格納されているか」これに尽きるのではないかと個人的には思っています。APIの実行速度の違いがボトルネックにはなっているとしたら、それはおそらく設計からやり直す必要があります。取得したデータに対してどんな操作を行うかの方が、パフォーマンスに大きく影響してくるからです。8bitのデータを1要素とするコンテナになっており、つまり1要素がピクセル値かチャンネル値かの違いになっています。取得できる情報の違いだけを見ると些細な違いに感じるかもしれませんが、インデックス計算やその他いろいろな場面でパフォーマンスに影響してくる大事な要素です。y)に対応するインデックスはそれぞれ以下のようになります。実際はほとんどパフォーマンスに影響を与えません。ここで、ピクセルデータを扱う時に以下のようなコード片をよく目にします。ピクセル値(value)をRGB値に分解する計算になります。知らない;)このような処理は一般的にループの深い所に置かれることが多いため、チリも積もれば山となりパフォーマンスに影響を与えます。みたいなメソッドでラップして、ループ内で頻繁にコールしている作品をwonderflでたくさん見ました。Playerについてよく知らないのですが、JITが上手くインライン展開してくれてるのか不安なので手動で展開した方がいいと思います。結果的にパフォーマンスに影響することはほとんどないと思います。頻繁に繰り返される処理のためパフォーマンスに影響を与えます。着目領域(ROI)ベースなので、ピクセル毎の操作には利用できません。自前でRGB分解して3つの変数をあちこちで使い回すのは効率が悪く、それらはメモリ上に連続していないので、CPUのL2キャッシュにヒットしにくいです。方が有利だと考えられます。インデックスアクセスの方が高速です。ループやキャッシュをいろいろ工夫して小さなパフォーマンス稼ぎを重ねたところで、インデックスアクセスの速度差であっという間にひっくり返されてしまいます。シンタックスシュガーなんじゃないかと、、そういう疑惑が湧いてきたりしましたが、符号の扱いもあるのでそれは違いますね。領域に対し、一律の処理を画像全体に渡って繰り返す手法があります。いった処理は画像端において注意する必要があります。画像端に近い画素での画像外参照の扱いです。一次元のコンテナに詰められているので、細かく地道に境界チェックを入れていくしかありません。範囲外参照に対応するためにインデックスの範囲チェックが常に必要になってきます。