Video and Vision Processing Suite Intel® FPGA IPユーザーガイド

ID 683329
日付 6/26/2023
Public
ドキュメント目次
1. Video and Vision Processing Suiteについて 2. Video and Vision Processing IPのスタートガイド 3. Video and Vision Processing IPの機能の説明 4. Video and Vision Processing IPインターフェイス 5. Video and Vision Processing IPレジスター 6. Video and Vision Processing IPのソフトウェア・プログラミング・モデル 7. Protocol Converter Intel® FPGA IP 8. 3D LUT Intel® FPGA IP 9. AXI-Stream Broadcaster Intel® FPGA IP 10. Bits per Color Sample Adapter Intel FPGA IP 11. Chroma Key Intel® FPGA IP 12. Chroma Resampler Intel® FPGA IP 13. Clipper Intel® FPGA IP 14. Clocked Video Input Intel® FPGA IP 15. Clocked Video to Full-Raster Converter Intel® FPGA IP 16. Clocked Video Output Intel® FPGA IP 17. Color Space Converter Intel® FPGA IP 18. Deinterlacer Intel® FPGA IP 19. FIR Filter Intel® FPGA IP 20. Frame Cleaner Intel® FPGA IP 21. Full-Raster to Clocked Video Converter Intel® FPGA IP 22. Full-Raster to Streaming Converter Intel® FPGA IP 23. Genlock Controller Intel® FPGA IP 24. Generic Crosspoint Intel® FPGA IP 25. Genlock Signal Router Intel® FPGA IP 26. Guard Bands Intel® FPGA IP 27. Interlacer Intel® FPGA IP 28. Mixer Intel® FPGA IP 29. Parallel Converter Intel® FPGA IPのピクセル 30. Scaler Intel® FPGA IP 31. Stream Cleaner Intel® FPGA IP 32. Switch Intel® FPGA IP 33. Tone Mapping Operator Intel® FPGA IP 34. Test Pattern Generator Intel® FPGA IP 35. Video and Vision Monitor Intel FPGA IP 36. Video Frame Buffer Intel® FPGA IP 37. Video Frame Reader Intel FPGA IP 38. Video Frame Writer Intel FPGA IP 39. Video Streaming FIFO Intel® FPGA IP 40. Video Timing Generator Intel® FPGA IP 41. Warp Intel® FPGA IP 42. デザイン・セキュリティー 43. Video and Vision Processing Suiteユーザーガイドの文書改訂履歴

30.3.2. 係数の量子化

固定小数点ロジックを使用してPolyphaseアルゴリズムを選択すると、スケーラーIPはフィルターを実装するため、フィルター係数を固定小数点形式で指定する必要があります。係数の形式は、符号付きか符号なしか、整数のビット数、および小数部のビット数を選択するパラメーターを使用して定義します。
  • 符号付きまたは符号なし: 負の係数を表現したい場合は、Use signed vertical coefficientsをオンにする。すべての係数が正の値の場合は、ロジックを減らし、Use signed vertical coefficientsをオフにする。
  • 整数ビット: 整数ビットの数によって、表現できる最大値が定義される。
  • 小数ビット: 小数ビットの数は、IPが浮動小数点係数を固定小数点形式に変換できる精度を定義する。

各係数の全体的なビット幅は、整数ビットと小数ビットの合計に、符号付き係数の場合は1ビット追加されます。Lanczos係数を使用する場合、インテルは次の設定をお勧めします。

  • Use signed vertical coefficientsをオンにする。これは、1より大きいローブ数のLanczos関数には負の値が必要で、係数に符号を付ける必要があるためです。
  • 1つの整数ビットを使用する。Lanczos係数に必要な最大値は1.0であるためです。
  • 6から8個の小数ビットを使用する。

通常、フィルター係数は非整数の浮動小数点値を生成します。各浮動小数点係数を、選択した固定小数点形式で最も近い量子化表現に変換するには、次の手順を実行します。

  • 各係数に2 frac を掛ける。ここでのfracは、選択した小数ビットの数です。
  • 各係数に浮動小数点から整数への変換を適用する。

ただし、量子化プロセスによって係数値に生じた小さな誤差が蓄積され、各フェーズの係数の合計が意図した値にならなくなることがあります。通常、どのフェーズでも係数の合計は1.0に正確になる必要があります。1.0より大きい値は、結果の画像全体の明るさを増します。1.0より小さい値は、明るさを下げます。より明るい画像やより暗い画像が必要な場合は、係数の合計が1.0より大きくなる、または小さくなることがあります。量子化後も、係数の合計が元の意図した値になるようにする必要があります。係数を意図した値に復元するには、次の手順を実行します。

図 64. 係数値の復元
float quantization_error = 0.0;
for (int j = 0; j < taps; j++) {
   quantization_error += original_float_coeff[j] - ((float)quant_coeff[j]);
   if (quantization_error < -0.5) {
      quant_coeff[j]--;
      quantization_error += 1.0;
   } else {
      if (quantization_error > -0.5) {
         quant_coeff[j]++;
         quantization_error -= 1.0; 
      }
   }
}