1package com.android.rs.refocus.image; 2 3import com.android.rs.refocus.DepthTransform; 4 5/** 6 * 7 * An implementation of {@code DepthTransform} that uses a linear 8-bit 8 * quantization. 9 * 10 * @author chernand@google.com (Carlos Hernandez) 11 */ 12public class RangeLinearDepthTransform implements DepthTransform { 13 public static final String FORMAT = "RangeLinear"; 14 15 private final float near; 16 private final float far; 17 18 public RangeLinearDepthTransform(float near, float far) { 19 this.near = near; 20 this.far = far; 21 } 22 23 @Override 24 public float getNear() { 25 return near; 26 } 27 28 @Override 29 public float getFar() { 30 return far; 31 } 32 33 @Override 34 public String getFormat() { 35 return FORMAT; 36 } 37 38 @Override 39 public int quantize(float value) { 40 return Math.max(0, Math.min(255, 41 (int) ((value - near) / (far - near) * 255f))); 42 } 43 44 @Override 45 public float reconstruct(int value) { 46 return near + (far - near) * Math.max(0, Math.min(255, value)) / 255f; 47 } 48} 49