AnsweredAssumed Answered

Image output from PVP

Question asked by kaustubh on Sep 22, 2015
Latest reply on Oct 10, 2015 by kaustubh

Hi all,


I am using the Finboard and thus bf609 for the purpose of decoding data matrix. I am using the following configuration of the PVP to get a binary thresholded image: IPF --> THC --> OPF. I am testing the image output from the pipe by printing it to a binary file and then using the image viewer.


The THC clipping thresholds are set as follows:

  oTHC0ClipThreshold.nMinClipValue      =  255;
  oTHC0ClipThreshold.nMinClipThreshold  =  180;
  oTHC0ClipThreshold.nMaxClipValue      =  10;
  oTHC0ClipThreshold.nMaxClipThreshold  =  180;


The image output is as under:0x0a thc image 1.png


If I zoom in and increase the gamma settings this is what I get:




As can be noticed, the image has 3 column of separation throughout between relevant pixels, if I am putting it correctly. The pixel values appearing in the binary are exactly as calibrated i.e. 0x0a and 0xff, with a lot of 0X00 in between. I am thus not able to decode the data matrix.

I can't understand why this is happening. Grateful if anyone can help me out.


A few details which might be relevant are given below.


//IPF0 settings
    oIPFControl.bOutPort0               =   true;
    oIPFControl.eOutPort1               =   ADI_PVP_IPF_PORT1_DISABLE;
    oIPFControl.bOutPort2               =   false;
    oIPFControl.eColorFormat            =   ADI_PVP_COLOR_FORMAT_32BIT;
    oIPFControl.bEnableUnpack           =   false;
    oIPFControl.bExtractRed             =   false;
    oIPFControl.bEnableSignExtn         =   false;
    oIPFControl.bEnableQFormat          =   false;
    oIPFControl.bColorExtractionEnable  =   false;
    oIPFControl.bBayerType              =   false;
    oIPFControl.bBlueExtraction         =   false;

    oIPFPipeControl.bEnableDrain     = false;
    oIPFPipeControl.bEnableStatusDMA = false;

//THC settings
    oTHC0Control.eTHCMode               =    ADI_PVP_THC_MODE_CLIPPING;
    oTHC0Control.eOutputFormat          =    ADI_PVP_THC_OFRMT_32BIT;                     //output format
    oTHC0Control.eHWindowMode           =    ADI_PVP_THC_HWIND_MODE_WHOLE_FRAME;          //whole frame as ROI
    oTHC0Control.eRLEWindowMode         =    ADI_PVP_THC_RWIND_MODE_WHOLE_FRAME;          //whole frame as ROI
    oTHC0Control.bFrameLevelEncoding    =    true;
    oTHC0Control.bEnableZeroExtension   =    false;
    oTHC0Control.bEnableHistCounters    =    false;

    oTHC0ClipThreshold.nMinClipValue       =   255;
    oTHC0ClipThreshold.nMinClipThreshold   =   180;
    oTHC0ClipThreshold.nMaxClipValue       =   10;
    oTHC0ClipThreshold.nMaxClipThreshold   =   180;

//OPF settings:

    oOPF0Control.eInDataWidth     =   ADI_PVP_OPF_IN_DATA_32BIT;
    oOPF0Control.eOutDataWidth    =   ADI_PVP_OPF_OUT_DATA_32BIT;
    oOPF0Control.bUseUpper16bits  =   false;
    oOPF0Control.bChangeSign      =   false;
    oOPF0Control.bFinishSignal    =   true;