4:2:0 Color Smoothing Filter for HDV? keying HDV

having fun here trying to key a green screen music video shot in HDV..
thought it would be nice to try FCP's plugins on it... including some sort of "pre-blur" but unfortunately i don't see a color smoothing for 4:2:0 color space in which HDV shoots..
any suggestions on what the best way to key this stuff is

Try the G Chroma Sharpen filters in Film Effects (www.nattress.com), which were designed for this. They do 4:2:0 smoothing, and then sharpen the chroma based upon luma detail to get the best edge possible.
Graeme

Similar Messages

  • Chroma key - color smoothing filter renders vertical lines

    several vertical lines appear in render (or QT output), but if I turn the color smoothing filter off they disappear (at the cost of messy chromakey).
    These lines do NOT appear when the playback is stopped on (unrendered) timeline or when using play every frame (option + P).
    I am using a 720p60 Prores 422 sequence. Interestingly if I output to mpeg2 via Compressor the lines do not appear (but poor HD to SD downscale - hence why I seek QT prores output)
    For the moment I turn it off and mess with the chroma keyer controls to clean it up.

    Using 4:2:2 smoothing, upstream (above) the keyer, meant to say 720p50 PAL sequence and clips captured via Io Express direct to Prores.

  • DVCAM to ProRess - Clip Analyze - Color Smoothing

    Hello,
    A few questions that I'll try to make brief. I'd really appreciate someone experienced giving their outlook.
    1 - I've got an old DVCAM project captured and backed up to a hard drive. I'm just pulling the project out again to get it as nice as possible for a master copy and DVD; finish it off as best as possible.
    Should I use media manager to recompress to ProRess(HQ) for PAL if I'm going to be doing extensive color grading?
    2 - When I look at the clips in the timeline with the analyze tool it says Codec: DV - Pal at Medium Quality. When I check other (my original captured files - before I used media manager on the whole project) those files say Codec: DV - Pal at Most Quality.
    Should I be re-creating my project from the original captured files, as the one's my timeline is referencing (after using Media Manager to consolodate the project) say Medium Quality?
    I assume, if so, I should do this before the ProRess conversion process, right?
    3 - I've heard of using a color smoothing filter before the conversion process to ProRess, but my footage is DVCAM PAL 4:2:0. Does that mean I just skip any color smoothing step, or is there another process for those coming from a 4:2:0 color space?
    Thanks so much for any help,
    Matthew Morreale
    Yoga Maya Films - www.yogamayafilms.com
    The Film Producer's Podcast - www.yogamayafilms.com/podcast

    I'll give it one more shot (bring the post to the top of the list) to see if anyone could help with answers to these things.
    Anyone?

  • Looking for a "color pass filter"..Remove all colors but 1

    Looking for a "color pass filter"..Remove all colors but 1 or 2.
    FCP6 doesn't seem to have one.
    Anyone heard of one that works really well & that is fast to use?
    steve

    Jim,
    You are totally missing the point. I am an Adobe Premiere Pro instructor. I have been for 5 years. I added my 1st FCP system 2 weeks ago & am experiencing typical transitional curiosities as all who switch to other platforms & editing apps do.
    PP has a color pass filter. I was curious to see if FCP did. That sounds logical to me:) If posting the question about the possibility of there being a color pass plugin bothers you, well , that has to do with you.
    If you take a moment to read the prior correspondence, you might see my point.
    I think we can bury the hatchet now:)

  • Color Smoothing 4:1:1 or 4:2:2 (before key in ProRes)

    I'm working on some green screen stuff in FCP and I'm wondering what the difference is between the 4:1:1: Color Smoothing tool and the 4:2:2 . Both seem clean when I use the chroma key tool (and I don't see any difference).  I'm working with video that was shot in HDV and imported into FCP as ProRes (standard).

    So the correct answer is - ProRes 422 is 4:2:2 (at least for compositing purposes). For those interested in learning more, here's the Apple White paper on the subject:
    http://images.apple.com/finalcutstudio/resources/white_papers/L342568A_ProRes_WP .pdf
    It doesn't matter that the video started life as HDV - the fact that it is encoded as ProRes makes it 4:2:2 from there-on (or until I output it as something else).

  • Smooth filter..

    Hi,
    I've built a simple smooth filter Codec.. but I get strange colors near object edges.. can it be somekind of color bleeding? or there is a bug in my code?
    Perhaps in the coversion from and to byte?
    here is the code thanks
    package camgrabtests;
    import javax.media.format.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.media.*;
    import java.util.*;
    //controllo dall'alto
    public class ResizeBlurEffect implements Effect,ControllerListener {
    private Format[] inputFormats;
    private Format[] outputFormats;
    private Format inputFormat;
    private Dimension size;
    private Format outputFormat;
    protected int width;
    protected int height;
    protected int center_x;
    protected int center_y;
    private int xBlurFactor;
    private int yBlurFactor;
    Format matches(Format in, Format outs[]) {
    for (int i = 0; i < outs.length; i++) {
    if (in.matches(outs))
    return outs[i];
    return null;
    ResizeBlurEffect(
    int width,
    int height,
    int xBlurFactor,
    int yBlurFactor
    this.width=width;
    this.height=height;
    this.xBlurFactor=xBlurFactor;
    this.yBlurFactor=yBlurFactor;
    //target di default
    inputFormats = new Format[] {
    new RGBFormat(null,
    Format.NOT_SPECIFIED,
    Format.byteArray,
    Format.NOT_SPECIFIED,
    24,
    3, 2, 1,
    3, Format.NOT_SPECIFIED,
    Format.TRUE,
    Format.NOT_SPECIFIED)
    outputFormats = new Format[] {
    new RGBFormat(new Dimension(width,height),
    width*height*3,
    Format.byteArray,
    Format.NOT_SPECIFIED,
    24,
    3, 2, 1,
    3, Format.NOT_SPECIFIED,
    Format.TRUE,
    Format.NOT_SPECIFIED)
    // methods for interface Codec
    public Format[] getSupportedInputFormats() {
    return inputFormats;
    public Format [] getSupportedOutputFormats(Format input) {
    if (input == null) {
    return outputFormats;
    if (matches(input, inputFormats) != null) {
    return new Format[] { outputFormats[0].intersects(input) };
    } else {
    return new Format[0];
    public Format setInputFormat(Format input) {
    inputFormat = input;
    return input;
    public Format setOutputFormat(Format output) {
    if (output == null || matches(output, outputFormats) == null)
    return null;
    RGBFormat incoming = (RGBFormat) output;
    size = incoming.getSize();
    size.height=height;
    size.width=width;
    //int maxDataLength = incoming.getMaxDataLength();
    int lineStride = incoming.getLineStride();
    float frameRate = incoming.getFrameRate();
    int flipped = incoming.getFlipped();
    int endian = incoming.getEndian();
    int pixelstride=incoming.getPixelStride();
    if (size == null)
    return null;
    int maxDataLength = height * width * 3;
    lineStride = width * 3;
    outputFormat = outputFormats[0].intersects(new RGBFormat(size,
    maxDataLength,
    incoming.getDataType(),
    frameRate,
    Format.NOT_SPECIFIED,
    Format.NOT_SPECIFIED,
    Format.NOT_SPECIFIED,
    Format.NOT_SPECIFIED,
    pixelstride,
    lineStride,
    flipped,
    endian));
    System.out.println("final outputformat = " + outputFormat);
    return outputFormat;
    //funzione dove avvine il processamento dello stream
    public int process(Buffer inBuffer, Buffer outBuffer) {
    long max_area = 1;
    int maxInputIndex=0;
    int maxoutputIndex=0;
    System.out.println("process in:" +inBuffer.getFormat());
    int outputDataLength = ((VideoFormat)outputFormat).getMaxDataLength();
    validateByteArraySize(outBuffer, outputDataLength);
    System.out.println("process out:" +outBuffer.getFormat());
    outBuffer.setLength(outputDataLength);
    outBuffer.setFormat(outputFormat);
    outBuffer.setFlags(inBuffer.getFlags());
    byte [] inData = (byte[]) inBuffer.getData();
    byte [] outData = (byte[]) outBuffer.getData();
    RGBFormat vfIn = (RGBFormat) inBuffer.getFormat();
    Dimension sizeIn = vfIn.getSize();
    final int pixStrideIn = vfIn.getPixelStride();
    final int lineStrideIn = vfIn.getLineStride();
    int iw = sizeIn.width;
    int ih = sizeIn.height;
    final int filter_width=Math.max(iw/width,1)+xBlurFactor;
    final int filterHeight=Math.max(ih/height,1)+yBlurFactor;
    byte maxInputRed=+127;
    long maxOutputRed=+127000;
    for (int y = 0,counter=0; y < height; y++)
    for (int x = 0; x < width; x++,counter+=3) {
    final int start_Y,start_X,end_X,end_Y;
    start_Y= Math.min(Math.max(y-filterHeight/2,0),ih);
    //System.out.println("start_Y: "+start_Y);
    end_Y=Math.min(Math.max(y+Math.max(filterHeight/2,1),0),ih);
    start_X= Math.min(Math.max(x-filter_width/2,0),iw);
    //System.out.println("start_X: "+start_X);
    end_X=Math.min(Math.max(x+Math.max(filter_width/2,1),0),iw);
    //System.out.println("end_X: "+end_X);
    if ( outData.length < filter_width*filterHeight*pixStrideIn ) {
    System.out.println("the buffer is not full");
    return BUFFER_PROCESSED_FAILED;
    // System.out.println("count = " + count);
    // System.out.println("vsin = " + vsin + " vcos = " + vcos);
    int index=startY*lineStrideIn+start_X*pixStrideIn;
    int outidx=0;
    final int actual_lenght=(end_X-start_X);
    final int step=(endX-start_X)*pixStrideIn;
    final int destLineStride= width*pixStrideIn;
    //System.out.println("step: "+_step);
    //System.out.println("_index start: "+_index);
    float acc1=0,acc2=0,acc3=0;
    for (int i = start_Y; i < end_Y; i++) {
    for (int j = 0; j < _step; j+=3) {
    if(x==width/2&&y==height/2)
    System.out.println("partial red= "+inData[_index+j]);
    acc1+=inData[_index+j];
    acc2+=inData[_index+j+1];
    acc3+=inData[_index+j+2];
    _index+=lineStrideIn;
    float area=actual_lenght*(end_Y-start_Y);
    outData[counter]=(byte)(acc1/area);
    if(x==width/2&&y==height/2)
    System.out.println("mean red= "+outData[counter]);
    outData[counter+1]=(byte)(acc2/area);
    outData[counter+2]=(byte)(acc3/area);
    return BUFFER_PROCESSED_OK;
    public String getName() {
    return "Rotation Effect";
    public void open() {
    public void close() {
    public void reset() {
    // methods for interface javax.media.Controls
    public Object getControl(String controlType) {
    return null;
    public Object[] getControls() {
    return null;
    byte[] validateByteArraySize(Buffer buffer,int newSize) {
    Object objectArray=buffer.getData();
    byte[] typedArray;
    if (objectArray instanceof byte[]) {     // is correct type AND not null
    typedArray=(byte[])objectArray;
    if (typedArray.length >= newSize ) { // is sufficient capacity
    return typedArray;
    byte[] tempArray=new byte[newSize]; // re-alloc array
    System.arraycopy(typedArray,0,tempArray,0,typedArray.length);
    typedArray = tempArray;
    } else {
    typedArray = new byte[newSize];
    buffer.setData(typedArray);
    return typedArray;
    //implements controllerListener
    public void controllerUpdate(ControllerEvent ce) {
    System.out.println(ce);
    // if (ce instanceof EndOfMediaEvent) {
    // //System.out.println("Dimensione vettore dati: "+vettoreDati.size());
    // //SalvaDati sd=new SalvaDati(nomeFile+".blob",vettoreDati);
    // if (ce instanceof FormatChangeEvent) {
    // System.out.println("Dimensione vettore dati: "+vettoreDati.size());
    // SalvaDati sd=new SalvaDati(nomeFile+".blob",vettoreDati);
    public int getWidth() {
    return width;
    public void setWidth(int width) {
    this.width = width;
    public void setRescaleBlurFactors(
    int width,
    int height,
    int xBlurFactor,
    int yBlurFactor
    this.width=width;
    this.height=height;
    this.xBlurFactor=xBlurFactor;
    this.yBlurFactor=yBlurFactor;
    public static void main(String args[]){
    int a=0;
    byte b=-20;
    for (int i = 0; i < 100; i++) {
    a+=b;
    System.out.println("a: "+a);
    public int getXBlurFactor() {
    return xBlurFactor;
    public void setXBlurFactor(int xBlurFactor) {
    this.xBlurFactor = xBlurFactor;
    public int getYBlurFactor() {
    return yBlurFactor;
    public void setYBlurFactor(int yBlurFactor) {
    this.yBlurFactor = yBlurFactor;

    there was a problem in the conversion from byte to int
    for this rgb format
    i added this 2 functions and now it works..
    private final byte convert(float x){
    return (byte)x;//((x>127)?(x-255):x);
    //return (byte)x;
    private final int deconvert(byte x){
    return (int)(x & 0xff);
    //return x;
    and changed the code in this way
    //inside teh process method
    for (int i = start_Y; i < end_Y; i++) {
    for (int j = 0; j < _step; j+=3) {
    //if(x==width/2&&y==height/2)
    // System.out.println("partial red= "+inData[_index+j]);
    acc1+=deconvert(inData[_index+j]);
    acc2+=deconvert(inData[_index+j+1]);
    acc3+=deconvert(inData[_index+j+2]);}
    _index+=lineStrideIn;
    float area=actual_lenght*(end_Y-start_Y);
    outData[counter]=convert(acc1/area);
    //if(x==width/2&&y==height/2)
    // System.out.println("new mean red= "+outData[counter]);
    outData[counter+1]=convert(acc2/area);
    outData[counter+2]=convert(acc3/area);
    Message was edited by:
    dimitri

  • How do you filter for photos with develop adjustments?

    I wanted to put this information out there, because it was difficult for me to find an answer to the question of "how do you quickly filter for photos that have develop adjustments?"
    Some earlier posts in this forum observe that a smart collection has the ability to filter files wherein "has adjustments" is "true." Yes, it can do that. And it can also add in a "date" parameter for more specific targeting. But it cannot simply say, "in the current folder," or "in the selected folder." And frankly, that's the exact situation when I need to filter down to the files I want: I'm in a folder—typically the current folder that I've just imported—and I've done a smattering of develop adjustments. Now, I want to quickly select just those images for export. Can't be done, not with a Smart Collection, anyway.
    But Lightroom is nothing if not deep, and if you approach the problem from a filtering standpoint, it will eventually get you there—but the solution is very non-obvious. Expose the filter bar, with your favorite preset: camera info, default columns... it doesn't really matter. Hover over the header bar and to the far right will become visible the "add column" widget. Add a column. From the pop-up menu on the name will come a long list of options, the second-to-last of which is "develop preset." Once that's in place, click on "custom." Save your current settings as a new preset and give it a descriptive name like "adjusted images."
    Now, when you're in your current—or any—folder, just click on "metadata" in the filter bar, and your custom preset will be in effect: any images that you've worked on will be selected. It's a fast, one-click selection.
    If there's another way of doing this (keep in mind it's for the selected or current folder only), let me know. It's such a seemingly desirable action that I'm kind of astounded there's no built-in or easy or obvious way to do it... or that no photographer has requested it.

    I am honored to have a response from Rikk "MVP" Flohr, and I do readily agree that your approach is one way to approach the issue. It puts the relevant images in a discrete area that is easy to access. However (this is where I look a gift horse in the mouth) I find "sorts" a bit underwhelming in comparison to "filtering." Two problems: first, the sort still does not 'clear your deck' of unwanted images. You still have to squint at the badges and carefully select the range at the top (or bottom). Mistakes can be made (and I would be the first to make them). Second, the sort command is "sticky," meaning that folder will always have that sort unless you undo it. In general, I think most photographers want to see a folder's images sorted by capture time, so they can easily glance to the beginning, middle, and end of the shoot. With my method, once you click out of the folder, the filter is taken away and you're back to normal.
    I do understand that Lightroom wants me to flag my images with rankings or stars or colors or dancing beavers or what-have-you. But in this particular situation, that's an extra step. If I've applied development adjustments, it's already done. Why shouldn't I be able to choose "Select Developed Photos" from the Edit menu, right under "Select Flagged Photos"?

  • To retain color space value for Monochrome images during flattening.

    In our project, we are extracting image content from PDF file and doing some raster operation by using LeadTool and then flattening the processed image in PDF file.
    Input PDf file: One page which has monochrome image
    For extracting image content from PDF file, we are using below Acro Plugin API:
    AVConversionConvertFromPDFWithHandler
    After this, we will perform some raster operations by using LeadTool and then flattening will happen.
    While doing flatten we are performing below operations in sequence:
    1. Set bitspercomponent  =1.
    2. Create a new color table using DeviceRGB.
    3. Create image by using below Acro Plugin API:
    pdeimage = PDEImageCreate(&attrs, sizeof(attrs), &matrix, 0, cols1, NULL, &fil, asstm, NULL, 0);
    4. Add image in PDF content.
    Now flattening is successful, but monochrome(Original Image format) is changed to RGB. We want to retain the color space(DeviceGrey).
    We have tried the below solution to retain the color space:
    1. Using the old image's color space value for new image creation. But this gives inverted color(Black to White and vice versa)
    Please help us to retain the color space while flattening.

    We are using JPG file format.
    Please find below the code portions which we used to add image in PDF file,
    //Read Image Data
    ========================================================================================== ==================
    ASBool ret = TRUE;
    // analyze img
    ASInt32 index = 0, quadSize = 0;
    BITMAPFILEHEADER* bmfh = NULL;
    // BITMAPFILEHEADER
    if(  !bQuadSize )
      bmfh = (BITMAPFILEHEADER*)img;
      index += sizeof(BITMAPFILEHEADER);
    // BITMAPINFOHEADER
    BITMAPINFOHEADER* bmih = (BITMAPINFOHEADER*)(img+index);
    index += sizeof(BITMAPINFOHEADER);
    // RGBQUAD
    if( !bQuadSize )
      quadSize = bmfh->bfOffBits - sizeof(BITMAPFILEHEADER) - sizeof(BITMAPINFOHEADER);
    else
      quadSize = size -  bmih->biSize -  bmih->biSizeImage;
    ASInt32 rgbquadNum = 0;
    char* quad = NULL;
    if (quadSize > 0)
      rgbquadNum = quadSize/sizeof(RGBQUAD);
      quad = (char*)(img+index);
      index += quadSize;
    // Image
    //ULONG imgSize = size - bmfh->bfOffBits;
    char* image = (img+index);
    DURING
       if(!pd)
        E_RETURN(FALSE);
       PDPage pp = PDDocAcquirePage(pd, page-1); // Get Page(PDPage) of specified page number
       PDEContent pdeContent = PDPageAcquirePDEContent(pp, gExtensionID); // Get PageContent(PDEContent)
       ASInt32 numElems = PDEContentGetNumElems(pdeContent);  // Get PageContent num
       // Check BitMap width, height, biXPelsPerMeter, biYPelsPerMeter changed
       ASFixedRect mb;
       PDPageGetMediaBox(pp, &mb);
       ASFixedRect chgMediaBox;
       memset(&chgMediaBox, 0 , sizeof(ASFixedRect));
       if (paperSizeChangeType == PAPERSIZE_SIZESPECIFICATION)
        chgMediaBox.right = width;
        chgMediaBox.top = height;
       // Get PDEImage's Attributes & Filters & ColorSpace from Old Image in PDF file
    ========================================================================================== ===================================
       PDEElement pdeElement;
       ASInt32 importIndex;
       ASInt32 type;
       PDEImageAttrs attrs1;
       PDEColorSpace cols1;
       //ASAtom colname;
       PDEFilterArray fil1[20];
       ASInt32 filNum1;
       ASFixedMatrix matrix1;
       bool isTransformedPage = false; //EV2.8.02000_19651_Retain color space_20141016
       for (int i = 0; i < numElems; i++)
        pdeElement = PDEContentGetElem(pdeContent, i);
        PDEObject obj=_objHelper.TraversePDPageContentsImage((PDEObject)pdeElement);
         if(obj == NULL)
          continue;
         pdeElement= (PDEElement)obj;
        type = PDEObjectGetType((PDEObject)pdeElement);
        if (type == kPDEImage)
         // Get Attr
         PDEImageGetAttrs((PDEImage)pdeElement, &attrs1, sizeof(PDEImageAttrs));
         // Get ColorSpace
         cols1 = PDEImageGetColorSpace((PDEImage)pdeElement);
         // Get Filter Array
         filNum1 = PDEImageGetFilterArray((PDEImage)pdeElement, fil1);
         // Get ASFixedMatrix
         PDEElementGetMatrix(pdeElement, &matrix1);
         //EV2.8.02000_19651_Retain color space_20141016 - Start
         if (matrix1.a < 0 || matrix1.b < 0 ||
                        matrix1.c < 0 || matrix1.d < 0 ||
                        matrix1.h < 0 || matrix1.v < 0)
          isTransformedPage = true;
         //EV2.8.02000_19651_Retain color space_20141016 - End
         // Set Import and Delete Index
         importIndex = i;
         break;
       // Create image data (for PDEImage)
    ========================================================================================== =================================
       ASInt32 bitPerComponent = bmih->biBitCount;
       ASInt32 bitWidth = 0;
       ASInt32 width1 = bmih->biWidth;
       ASInt32 height1 = bmih->biHeight;
       // Create image size
       if (bitPerComponent == 1)
        if (width1%8)
         bitWidth = (width1/8) + 1;
        else
         bitWidth = width1/8;
       else if (bitPerComponent == 4)
        if (width1%2)
         bitWidth = (width1/2)+1;
        else
         bitWidth = width1/2;
       else if (bitPerComponent == 8)
        bitWidth = width1;
       else if (bitPerComponent == 32)
        bitWidth = width1*4;
       else // if (bitPerComponent == 24)
        bitWidth = width1*3;
       ASInt32 imgSize4Acrobat = height1 * bitWidth;
       char* image4Acrobat = (char*)ASmalloc(imgSize4Acrobat);
       if( image4Acrobat == NULL )
        E_RETURN(FALSE);
       memset(image4Acrobat, 0, imgSize4Acrobat);
       // Create image
       ASInt32 nokori = (bitWidth)%4;
       ASInt32 bitWidth4hokan = 0;
       if (nokori)
        bitWidth4hokan = bitWidth + (4-nokori);
       else
        bitWidth4hokan = bitWidth;
       ASInt32 hbw = 0;
       ASInt32 hbw4hokan = 0;
       if (bitPerComponent == 1)
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         memcpy((image4Acrobat+hbw), (image+hbw4hokan), bitWidth);
       else if (bitPerComponent == 4)
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         memcpy((image4Acrobat+hbw), (image+hbw4hokan), bitWidth);
       else if (bitPerComponent == 8)
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         memcpy((image4Acrobat+hbw), (image+hbw4hokan), bitWidth);
       else if (bitPerComponent == 32)
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         for (int kk = 0; kk < bitWidth; kk += 4)
          *(image4Acrobat+hbw+kk) = *(image+hbw4hokan+(kk+3));
          *(image4Acrobat+hbw+kk+1) = *(image+hbw4hokan+(kk+2));
          *(image4Acrobat+hbw+kk+2) = *(image+hbw4hokan+(kk+1));
          *(image4Acrobat+hbw+kk+3) = *(image+hbw4hokan+(kk));
       else
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         for (int kk = 0; kk < bitWidth; kk += 3)
          *(image4Acrobat+hbw+kk) = *(image+hbw4hokan+(kk+2));
          *(image4Acrobat+hbw+kk+1) = *(image+hbw4hokan+(kk+1));
          *(image4Acrobat+hbw+kk+2) = *(image+hbw4hokan+(kk));
       //Invert Image Data
    ========================================================================================== ================================
       for(int it = 0; it < imgSize4Acrobat; it++)
          image4Acrobat[it] = 255 -image4Acrobat[it];
       // Open Image Data
    ========================================================================================== ================================
       ASStm asstm = ASMemStmRdOpen(image4Acrobat, imgSize4Acrobat);  
       // Create PDEImage Attribute etc.
    ========================================================================================== ================================
       PDEImageAttrs attrs;
       memset(&attrs, 0, sizeof(PDEImageAttrs)); // necessary
       attrs.width = width1;
       attrs.height = height1;
       if (bitPerComponent == 1) {
        attrs.bitsPerComponent = 1;
        if (rgbquadNum) {
         attrs.flags = kPDEImageIsIndexed | kPDEImageExternal; // Indicates image uses an indexed color space.
        } else {
         attrs.flags = kPDEImageExternal; // Indicates image is an XObject.
         // B&W
       } else if (bitPerComponent == 4) {
        attrs.bitsPerComponent = 4;
        if (rgbquadNum) {
         attrs.flags = kPDEImageIsIndexed | kPDEImageExternal; // Indicates image uses an indexed color space.
        } else {
         attrs.flags = kPDEImageExternal; // Indicates image is an XObject.
       } else if (bitPerComponent == 8) {
        attrs.bitsPerComponent = 8;
        if (rgbquadNum) {
         attrs.flags = kPDEImageIsIndexed | kPDEImageExternal; // Indicates image uses an indexed color space.
        } else {
         attrs.flags = kPDEImageExternal; // Indicates image is an XObject.
       } else if (bitPerComponent == 32) {
        // not support (acrobat)
       } else { // (bitPerComponent == 24)
        attrs.flags = kPDEImageExternal;  // Indicates image is an XObject.
        attrs.bitsPerComponent = 8;
       // matrix
       ASFixedMatrix matrix;
       memcpy(&matrix, &matrix1, sizeof(matrix1));
       if (paperSizeChangeType == PAPERSIZE_SIZESPECIFICATION)
        matrix.a = chgMediaBox.right;
        matrix.b = 0;
        matrix.c = 0;
        matrix.d = chgMediaBox.top;
        matrix.h = 0;
        matrix.v = 0;
       // Filter
       PDEFilterArray fil;
       memset (&fil, 0, sizeof (PDEFilterArray));
       PDEFilterSpec spec;
       memset (&spec, 0, sizeof (PDEFilterSpec));
       memcpy(&fil, &fil1, sizeof(PDEFilterArray));
       CosDoc cosDoc;
       CosObj cosDict;
       // Build the CosObj for the filter specification
       cosDoc = PDDocGetCosDoc(pd);
       cosDict = CosNewDict(cosDoc, false, 2);
       CosDictPut(cosDict, ASAtomFromString("K"), CosNewInteger (cosDoc, false, -1));
       CosDictPut(cosDict, ASAtomFromString("Columns"), CosNewInteger (cosDoc, false, width1));
       //memset the filterspec so there are no garbage values if we leave members empty
       spec.encodeParms = cosDict;
       spec.decodeParms = cosDict;
       spec.name = ASAtomFromString("CCITTFaxDecode"); 
       fil.spec[0] = spec;
       // Create PDEImage
    ========================================================================================== =================================
       PDEImage pdeimage;
       pdeimage = PDEImageCreate(&attrs, sizeof(attrs), &matrix, 0, cols1, NULL, &fil, asstm, NULL, 0);
       // Delete PDEImage at importIndex(==j) of page -> Delete old image in PDF file
    ========================================================================================== ====================
       PDEContentRemoveElem(pdeContent, importIndex);
       // Add PDEImage
    ========================================================================================== ==========================
       PDEContentAddElem(pdeContent, importIndex, (PDEElement)pdeimage);
       PDPageSetPDEContent (pp, gExtensionID);
       PDPageReleasePDEContent(pp, gExtensionID);
       // Release object
       PDERelease((PDEObject)pdeimage);
       PDPageNotifyContentsDidChangeEx(pp, TRUE);
       PDPageRelease(pp);
       ASStmClose(asstm);
       if (image4Acrobat)
        ASfree(image4Acrobat);
       if (lookupTable)
        ASfree(lookupTable);
      HANDLER
       ret = FALSE;
      END_HANDLER
    return ret;

  • Choppy clip with color correction filter

    I'm working on a video that has multiple clips. The clips that are choppy have a Color Corrector filter on them. The choppy clips stay that way even after exporting, but the rest of the file is fine. All video came from Canon Vixia HF200. I'm thinking I have a memory issue, but I'm hoping it's a user error issue. I'm on a MacBook Pro 2 GHz Intel Core, 2GB RAM. I'm using a Lacie 1TB external drive for the video. Final Cut Express 4.
    Any help is appreciated!

    Have you fully rendered the sequence before viewing/exporting? Click Option-R to check.

  • Savitzky golay filter for finding second derivative

    Hello friends,
     I want to find second derivative using Savitzky golay filter for the data as shown in image.
    Three different spacings are used.
    Region AB and EF= ∆f1
    Region  BC and DE=∆f2
    Region  CD=∆f3
    Can some one help me to understand to to decide side points and polynomial order for my input data.?
    Thanks in advance.

    The polynomial order must be at least one larger than the highest derivative. So a third order polynomial is required for a second deriviative. In general it is better to keep the polynomial order as low as possible while getting a good fit to the data.
    The number of side points is somewhat arbitrary and depends on how much smoothing is needed. Often some experimentation and judgement is required.
    Have you considered resampling the data to create a new dataset with uniform sampling throughout? That might be easier than trying to match derivatives at the transition points.There are several resampling VIs available.
    How many data points do you have in each segment?
    Lynn

  • Somehow I've created 6 color corection tabs for one shot and it's playing havoc - any suggestions? Thx!

    Somehow I've created 6 color corection tabs for one shot in FCE, can't seem to delete tham and it's playing havoc - they seem to be overlaying one another giving a dreadful colour balance - any suggestions? Thx!

    Either:
    Right click on clp in TL and select reove attributes>Filter
    or
    Open clip in Viewer, Click on Filter tab. In Nemeric view, far left for each filter, select and hit delete.
    Good luck.
    Russ

  • How to set filter for few Setup Objects on Geneneral Foundation?

    Controlling the download of sub-entities:
    By default all sub-entities are downloaded. Pass a non-existing value
    for the parameter (primary key) of the sub-entity if you don't want to
    download a specific sub-entity.
    For example, if you don't want to download the values of a value set,
    then use following input to FLEX_VALUE attribute while setting filter;
    FLEX_VALUE='THIS_IS_A_NON_EXISTING_VALUE_I_DONT_WANT_TO_DOWNLOAD_VALUES'
    VALUE_SET
    Notes:
    - To download '$FLEX$.%' value sets pass '$FLEX$.%' argument.
    - Upload API automatically submits the hierarchy compiler request
    - FLEX_VALUE_SET_NAME is a required argument for download.
    You can find the following parameters in Set Filter screen of Value Set Values.
    VALUE_SET has subenities such as VSET_SECURITY_RULE, VSET_ROLLUP_GROUP and VSET_VALUE.
    Setting value for attribute FLEX_VALUE_SET_NAME downloads all the subentities. If you want
    to restrict the subentities, set appropriate filter at VSET_SECURITY_RULE, VSET_ROLLUP_GROUP
    and VSET_VALUE.
    Parameters:
    VALUE_SET
    | FLEX_VALUE_SET_NAME : Value set name.
    |
    +-VSET_SECURITY_RULE
    | FLEX_VALUE_RULE_NAME : Value set security rule name.
    | PARENT_FLEX_VALUE_LOW : Independent value for the dependent value sets.
    |
    +-VSET_ROLLUP_GROUP
    | HIERARCHY_CODE : Hierarchy (rollup group) code.
    |
    +-VSET_VALUE
    PARENT_FLEX_VALUE_LOW : Independent value for the dependent value sets.
    FLEX_VALUE : Flexfield segment value.
    DESC_FLEX
    Notes:
    - Upload API automatically submits the flexfield compiler request
    - Upload API automatically submits the DFV view generator request
    - APPLICATION_SHORT_NAME is a required argument for download.
    You can find the following parameters in Set Filter screen of Descriptive Flexfields.
    DESC_FLEX has subenities such as DFF_REF_FIELD, DFF_CONTEXT and DFF_SEGMENT.
    Setting value for attributes DESC_FLEX and DESCRIPTIVE_FLEXFIELD_NAME downloads all the subentities.
    If you want to restrict the subentities, set appropriate filter at DFF_REF_FIELD, DFF_CONTEXT
    and DFF_SEGMENT.
    Parameters:
    DESC_FLEX
    | APPLICATION_SHORT_NAME : Application Short Name.
    | DESCRIPTIVE_FLEXFIELD_NAME : Descriptive Flexfield Name.
    |
    +-DFF_REF_FIELD
    | DEFAULT_CONTEXT_FIELD_NAME : BLOCK.FIELD reference field name.
    |
    +-DFF_CONTEXT
    | DESCRIPTIVE_FLEX_CONTEXT_CODE : Context Code
    |
    +-DFF_SEGMENT
    END_USER_COLUMN_NAME : Segment Name
    APPLICATION_COLUMN_NAME : Column Name
    KEY_FLEX
    Notes:
    - Upload API automatically submits the flexfield compiler request
    - Upload API automatically submits the KFV view generator request
    - Upload API automatically submits the structure view generator request
    - APPLICATION_SHORT_NAME is a required argument for download.
    You can find the following parameters in Set Filter screen of Key Flexfields.
    KEY_FLEX has subenities such as DFF_REF_FIELD, DFF_CONTEXT and DFF_SEGMENT.
    Setting value for attributes APPLICATION_SHORT_NAME and ID_FLEX_CODE downloads all the subentities.
    If you want to restrict the subentities, set appropriate filter at KFF_FLEX_QUAL, KFF_SEGMENT_QUAL,
    ,KFF_STRUCTURE,KFF_WF_PROCESS,KFF_SH_ALIAS,KFF_CVR_RULE and KFF_SEGMENT.
    Parameters:
    KEY_FLEX
    | APPLICATION_SHORT_NAME : Application Short Name.
    | ID_FLEX_CODE : Key Flexfield Code.
    |
    +-KFF_FLEX_QUAL
    | | SEGMENT_ATTRIBUTE_TYPE : Flexfield Qualifier Name
    | |
    | +-KFF_SEGMENT_QUAL
    | VALUE_ATTRIBUTE_TYPE : Segment Qualifier Name
    |
    +-KFF_STRUCTURE
    | ID_FLEX_STRUCTURE_CODE : Structure Code
    |
    +-KFF_WF_PROCESS
    | WF_ITEM_TYPE : Workflow Item Type
    |
    +-KFF_SH_ALIAS
    | ALIAS_NAME : Shorthand Alias Name
    |
    +-KFF_CVR_RULE
    | FLEX_VALIDATION_RULE_NAME : Cross Val. Rule Name.
    |
    +-KFF_SEGMENT
    SEGMENT_NAME : Segment Name
    APPLICATION_COLUMN_NAME : Column Name
    MENU
    You can find the following parameters in Set Filter screen of Menus.
    PARENT_MENU_NAME Name of the menu to start downloading at. If this
    parameter is specified on its own, that menu and
    all its children will be downloaded. If specified
    with FUNCTION_NAME and/or SUB_MENU_NAME, then only
    the menu entry with that function and/or submenu name
    immediately under the PARENT_MENU_NAME will be
    downloaded.
    FUNCTION_NAME Function name to limit download to. If this parameter
    is specified then PARENT_MENU_NAME must also be
    specified in order to download menus. Specifies
    the function on a menu entry immediately under
    PARENT_MENU_NAME which will be downloaded; all other
    menu entries under PARENT_MENU_NAME will not be
    downloaded.
    SUB_MENU_NAME Sub Menu name to limit download to. If this parameter
    is specified then PARENT_MENU_NAME must also be
    specified in order to download menus. Specifies
    the Sub Menu on a menu entry immediately under
    PARENT_MENU_NAME which will be downloaded (along with
    all its children); all other menu entries under
    PARENT_MENU_NAME will not be downloaded.
    MENU_APP_SHORT_NAME Application short name of Menu. The menu on the resp
    for this application will be downloaded. If you
    pass this parameter, do not pass any of the other
    parameters; this parameter is only supported on its
    own.

    Oh never mind.... I figured it out myself helps to read up on the manuals. d'oh. sorry for the bandwidth waste...

  • Interactive report filter for date not working correctly

    Hi,
    I am having an interactive report. I tried to give a filter for a column(created_on) as created on>29-oct-2009 17:17
    but i am getting the row containing created on as *29-oct-2009 17:17* in the report result. How can i correct this
    problem
    Thanks,
    TJ

    Hi,
    I think it is because seconds.
    So it is 29-oct-2009 17:17:00 and your record is e.g. 29-oct-2009 17:17:02
    br, Jari
    Edit
    You can use trunc function in your select so that it round date to minutes
    TRUNC(created_on,'MI') AS created_onBr, Jari
    Edited by: jarola on Nov 5, 2009 3:02 PM

  • How to create one filter for N views in the same report

    Hello everybody,
    I need to have the same filter for diferent views that I have in the same report. Anyone knows how to do it?
    Thanks in advance
    Mario Mesquita

    Hi,
    In India site, you can create a SMTP connector which point to the local ISP.
    Thanks.
    Niko Cheng
    TechNet Community Support

  • Set filter for only one column in tableview

    Hi
    i am using in MVC a htmlb:tableview with filter in only one column of 8.
    This is all working fine, except that the user can enter a searchsting in the filterfield for all columns, but in handle_event (of the controller) ; i only react to a text in the filterfield of column 4 and ignore all other filtertext , which were maybe entered in the other columns.
    My question:
    how can i  enter the filter only for one column, in a way that the user cannot enter any text in the filterfield of the other columns, only in column 4 ?
    my view:
    <htmlb:tableView id             = "requirements"
                     table          = "//model/pdst_reqs"
                     filter         = "APPLICATION"                
                     keyColumn       = "EXTID"
                     iterator        = "<%=model%>"
                     footerVisible   = "FALSE"
                     encode          = "TRUE"
                     visibleRowCount = "<%=model->rowcount%>"
                     width           = "100%"/>
    Best Regards
    Britta

    You can disbale the Filter for the particular column by setting the DISABLE_FILTER in the Iterator method IF_HTMLB_TABLEVIEW_ITERATOR~GET_COLUMN_DEFINITIONS. Here is the sample code
    method IF_HTMLB_TABLEVIEW_ITERATOR~GET_COLUMN_DEFINITIONS .
      CLEAR p_column_definitions.
      CLEAR p_overwrites.
      data tv_column TYPE TABLEVIEWCONTROL.
      tv_column-COLUMNNAME          = 'FLDATE'.
      tv_column-SORT                = 'X'.
      tv_column-EDIT                = 'X'.
      tv_column-ONCELLCLICK         = 'MyCellClick1'.
      tv_column-title               = 'Date '.
      APPEND tv_column TO p_column_definitions.
      CLEAR tv_column.
      tv_column-COLUMNNAME          = 'PRICE'.
      tv_column-horizontalAlignment = 'right'.
      tv_column-verticalAlignment   = 'middle'.
      tv_column-ONCELLCLICK         = 'MyCellClick2'.
      tv_column-title               = 'Currency'. 
      tv_column-EDIT                = 'X'.
      tv_column-DISABLE_FILTER      = 'X'.    " <-------Like this
      APPEND tv_column TO p_column_definitions.
    endmethod.
    Hope this will solve your problem.
    Raja

Maybe you are looking for

  • Error: "Component is not active" but component is active

    Hi Experts, I transported a Web Dynpro application from source system to target system. When starting the application via browser I'm getting this error message: "Component XXX_BDB is not active" But the component is active in source and in target sy

  • Can't connect to external HD

    The external HD doesn't show in the disc utility or on my desktop. It was there one day; the next gone. What should I do?

  • Data column in Manual planning Layout

    Hi, I have a KF in data column and year as a dynamic in the data column. Year is restricted to 2006 and 2007 in the planning level. When layout is executed is displays 2 columns 2006 and 2007 other then lead cols which as expected. Now at this stage

  • Strange Mavericks problem on MBA

    I have a strange problem on my MBA with Mavericks.  If I log in as the user (me), I am unable to select files to move.  I get the spinner.  For example, if I want to import a photo from my desktop to my iPhoto library, or I want to upload to Facebook

  • Create Custom Disk Menu in PE7

    I have recently purchased PE7 and so far I like it a lot. One thing though, I have little control over the Disk Menus. What I basically want to do is have a background picture with several text boxes as the buttons instead of the thumbnails. Is there