/** * A method that returns the transfer characteristic for underlying image essence * @return Enum representing the transfer characteristic */ public Colorimetry.TransferCharacteristic getImageTransferCharacteristic() { Colorimetry.TransferCharacteristic transferCharacteristic = Colorimetry.TransferCharacteristic.Unknown; Class clazz = RGBAPictureEssenceDescriptor.RGBAPictureEssenceDescriptorBO.class; if(hasCDCIPictureEssenceDescriptor()) { clazz = CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO.class; } List<InterchangeObject.InterchangeObjectBO> interchangeObjectBOList = this.getInterchangeObjectBOs(clazz); if(interchangeObjectBOList.size() >0) { GenericPictureEssenceDescriptor.GenericPictureEssenceDescriptorBO genericPictureEssenceDescriptorBO = GenericPictureEssenceDescriptor.GenericPictureEssenceDescriptorBO.class.cast(interchangeObjectBOList.get(0)); transferCharacteristic = Colorimetry.TransferCharacteristic.valueOf(genericPictureEssenceDescriptorBO.getTransferCharacteristicUL()); } return transferCharacteristic; }
/** * A method that returns the coding equation for underlying image essence * @return Enum representing the coding equation */ public Colorimetry.CodingEquation getImageCodingEquation() { Colorimetry.CodingEquation codingEquation = Colorimetry.CodingEquation.Unknown; Class clazz = RGBAPictureEssenceDescriptor.RGBAPictureEssenceDescriptorBO.class; if(hasCDCIPictureEssenceDescriptor()) { clazz = CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO.class; } List<InterchangeObject.InterchangeObjectBO> interchangeObjectBOList = this.getInterchangeObjectBOs(clazz); if(interchangeObjectBOList.size() >0) { GenericPictureEssenceDescriptor.GenericPictureEssenceDescriptorBO genericPictureEssenceDescriptorBO = GenericPictureEssenceDescriptor.GenericPictureEssenceDescriptorBO.class.cast(interchangeObjectBOList.get(0)); codingEquation = Colorimetry.CodingEquation.valueOf(genericPictureEssenceDescriptorBO.getCodingEquationsUL()); } return codingEquation; }
/** * A method that returns the color primaries for underlying image essence * @return Enum representing the color primaries */ public Colorimetry.ColorPrimaries getImageColorPrimaries() { Colorimetry.ColorPrimaries colorPrimaries = Colorimetry.ColorPrimaries.Unknown; Class clazz = RGBAPictureEssenceDescriptor.RGBAPictureEssenceDescriptorBO.class; if(hasCDCIPictureEssenceDescriptor()) { clazz = CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO.class; } List<InterchangeObject.InterchangeObjectBO> interchangeObjectBOList = this.getInterchangeObjectBOs(clazz); if(interchangeObjectBOList.size() >0) { GenericPictureEssenceDescriptor.GenericPictureEssenceDescriptorBO genericPictureEssenceDescriptorBO = GenericPictureEssenceDescriptor.GenericPictureEssenceDescriptorBO.class.cast(interchangeObjectBOList.get(0)); colorPrimaries = Colorimetry.ColorPrimaries.valueOf(genericPictureEssenceDescriptorBO.getColorPrimariesUL()); } return colorPrimaries; }
/** * A method that returns the chroma sampling for underlying image essence * @return Enum representing the chroma sampling */ public Colorimetry.Sampling getImageSampling() { if (hasRGBAPictureEssenceDescriptor()) { return Colorimetry.Sampling.Sampling444; } else if (hasCDCIPictureEssenceDescriptor()) { Colorimetry.Sampling sampling = Colorimetry.Sampling.Unknown; CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO cdciPictureEssenceDescriptorBO = CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO.class.cast(this.getInterchangeObjectBOs (CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO.class).get(0)); Long horizontalSubSampling = cdciPictureEssenceDescriptorBO.getHorizontal_subsampling(); Long verticalSubSampling = cdciPictureEssenceDescriptorBO.getVertical_subsampling(); if( horizontalSubSampling != null && verticalSubSampling != null) { sampling = Colorimetry.Sampling.valueOf(horizontalSubSampling.intValue(), verticalSubSampling.intValue()); } return sampling; } return Colorimetry.Sampling.Unknown; }
/** * A method that returns the pixel bit depth of the underlying image essence * @return Integer representing the pixel bit depth */ public Integer getImagePixelBitDepth() { Integer pixelBitDepth = 0; if(hasCDCIPictureEssenceDescriptor()) { CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO cdciPictureEssenceDescriptorBO = CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO.class.cast(this.getInterchangeObjectBOs (CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO.class).get(0)); pixelBitDepth = Colorimetry.Quantization.componentRangeToBitDepth(cdciPictureEssenceDescriptorBO.getBlackRefLevel(), cdciPictureEssenceDescriptorBO.getWhiteRefLevel()); } else if(hasRGBAPictureEssenceDescriptor()) { RGBAPictureEssenceDescriptor.RGBAPictureEssenceDescriptorBO rgbaPictureEssenceDescriptorBO = RGBAPictureEssenceDescriptor.RGBAPictureEssenceDescriptorBO.class.cast(this .getInterchangeObjectBOs (RGBAPictureEssenceDescriptor.RGBAPictureEssenceDescriptorBO.class).get(0)); pixelBitDepth = Colorimetry.Quantization.componentRangeToBitDepth(rgbaPictureEssenceDescriptorBO.getComponentMinRef(), rgbaPictureEssenceDescriptorBO.getComponentMaxRef()); } return pixelBitDepth; }
/** * A method that returns the color primaries for underlying image essence * @return Enum representing the quantization type */ public Colorimetry.Quantization getImageQuantization() { Colorimetry.Quantization quantization = Colorimetry.Quantization.Unknown; Integer pixelBitDepth = getImagePixelBitDepth(); Long signalMin = null; Long signalMax = null; if(hasCDCIPictureEssenceDescriptor()) { CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO cdciPictureEssenceDescriptorBO = CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO.class.cast(this.getInterchangeObjectBOs (CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO.class).get(0)); signalMin = cdciPictureEssenceDescriptorBO.getBlackRefLevel(); signalMax = cdciPictureEssenceDescriptorBO.getWhiteRefLevel(); } else if(hasRGBAPictureEssenceDescriptor()) { RGBAPictureEssenceDescriptor.RGBAPictureEssenceDescriptorBO rgbaPictureEssenceDescriptorBO = RGBAPictureEssenceDescriptor.RGBAPictureEssenceDescriptorBO.class.cast(this .getInterchangeObjectBOs (RGBAPictureEssenceDescriptor.RGBAPictureEssenceDescriptorBO.class).get(0)); signalMin = rgbaPictureEssenceDescriptorBO.getComponentMinRef(); signalMax = rgbaPictureEssenceDescriptorBO.getComponentMaxRef(); } if(pixelBitDepth != 0 && signalMax != null && signalMin != null) { quantization = Colorimetry.Quantization.valueOf(pixelBitDepth, signalMin, signalMax); } return quantization; }