draco/docs/spec/prediction.scheme.wrap.transform.md
Lou Quillio 8d8c88e08f Re-org files, refine styles, add README, et al.
Draco bitstream spec source should be ready for author contributions.
2017-07-12 15:18:53 -07:00

1.2 KiB

Prediction Scheme Wrap Transform

DecodeTransformData()

DecodeTransformData(buffer) {
  min_value_                                                            DT
  max_value_                                                            DT
}

{:.draco-syntax }

ComputeOriginalValue()

ComputeOriginalValue(const DataTypeT *predicted_vals,
                     const CorrTypeT *corr_vals,
                     DataTypeT *out_original_vals, int val_id) {
  clamped_vals = ClampPredictedValue(predicted_vals);
  ComputeOriginalValue(clamped_vals, corr_vals, out_original_vals, val_id)
  // PredictionSchemeTransform_ComputeOriginalValue()
  for (i = 0; i < this->num_components(); ++i) {
    if (out_original_vals[i] > max_value_) {
      out_original_vals[i] -= max_dif_;
    } else if (out_original_vals[i] < min_value_) {
      out_original_vals[i] += max_dif_;
    }
}

{:.draco-syntax }

ClampPredictedValue()

ClampPredictedValue(const DataTypeT *predicted_val) {
  for (i = 0; i < this->num_components(); ++i) {
    clamped_value_[i] = min(predicted_val[i], max_value_)
    clamped_value_[i] = max(predicted_val[i], min_value_)
  }
  return &clamped_value_[0];
}

{:.draco-syntax }