Time for jpeg decoding

Hi to all!
i'm working with a thread that read a stream from a camera (stream of Jpeg ) end show the video on the screen.
I'm testing with max resolutions (704x576) e low compression at 25 fps.
The result is very far from 25 fps! and depending from the library for decoding. I have tested with:
1) immagine = ImageIO.read(test);
2) immagine=Toolkit.getDefaultToolkit().createImage(imageData);
3) with Reader: immagine = reader.read(0);
4) with JPEGDecoder: immagine = decoderA.decodeAsBufferedImage();
The target is 40 ms for one of that line.
Analysing the problem i have found that the time for decoding Increases enormously every 3-4 frame (at 704x576 while at low resolutions the number increases) like:
67 ms,70 ms,68 ms, 240 ms,68 ms,72 ms,77 ms,220 ms,69 ms,68 ms,77 ms,79 ms,199 ms,62 ms,59 ms, ecc..ecc...
The size is consistently about 34000 byte (also when employs 200 ms....).
and obviously average values of FPS collapse up to 3-6 fps (at 704x576) precisely those values up 200 ms !
I can not understand why!
that is for linux on pentium or for windows (java VM is version 6up5).
No sleep or other operation is done at regular intervals that could cause this.
Someone has had a similar problem or have a suggestion?
thanks in advance,
Nicola
Edited by: nicopalm on Apr 10, 2008 2:07 AM
Edited by: nicopalm on Apr 10, 2008 2:16 AM

Thanks Andrew,
I have tetsted your suggestion but i have some problem with my Reader ...
i create imageinputstream for Reader from bytearrayinputstream and i must allocate a new test every time because the imagedata is different every time...
test = new ByteArrayInputStream(bufferArray, 0,lungbyte);
iis = ImageIO.createImageInputStream (test);
I try to say as I did to find out if I have done well.....(sorry for my english...)
1) I have a stream come from network camera.
2) I open DataInputStream (iStrm).
I know the lenght (L) of each image end i read from iStrm imageLength bytes (after i have fount the boundary e read the info between two images) .
3) With these values fill a byte array (imageData). Because each images have different lenght, i must allocate imageData=new byte[imageLength]. (After draw i make imageData=null).
4) With imageData i create a ByteArrayInputStream. test= new ByteArrayInputStream(imageData).
5) Finally i have the multiple way to decode like image=ImageIO.read(test) or other....
Is the proper procedure?
My doubt is this:
The new ByteArrayInputStream have the imageData like is buffer.
Can i create a buffer of fixed size (example higher than the average value of images length)      so that i can make a new ByteArrayInputStream one time only ?
In this way could fill the array (which is certainly less buffer).
thanks
Nicola

Similar Messages

  • Photoshop has problem with .JPEG decoding ??

    There seems to be an issue with either JPEG decoding in Photoshop or the blend modes don't work as they should. Or maybe someone finds the true reason ... ?
    Let's go step-by-step:
    This is the original image file (JPEG):
    This is the same image converted to .png:
    I examined the differences. Open one image and add the second image as a new layer over it with blend mode = difference. Use magic wand tool, with tolerance=zero. Expected results: entirely black image, entire image selected. Actual esults (white filled selection):
    [IMG]http://img372.imageshack.us/img372/694/differencepg1.png[/IMG]
    Merge both layers, invert the colors and you see the differences between the images. I applied a curves adjustment to exaggerate the differences:
    [IMG]http://img241.imageshack.us/img241/1995/difference2zw5.png[/IMG]
    Again, this time you should see an entirely white image, if both images were identical.
    The JPEG-to-PNG conversion was done with a third party image viewer that I trust. Obviously, the possibility exists, that this conversion is not exact/losless. But I can refute this, as I converted both the source JPEG image and the converted PNG image to BMP images, and the two files that were obtained this way were bit-for-bit identical:
    So it's impossible that any loss occured, given that in the a losless reconstruction was possible.
    Thus the error must be somewhere within Photoshop.
    Any ideas?

    There seems to be an issue with either JPEG decoding in Photoshop or the blend modes don't work as they should. Or maybe someone finds the true reason ... ?
    Let's go step-by-step:
    This is the original image file (JPEG):
    This is the same image converted to .png:
    I examined the differences. Open one image and add the second image as a new layer over it with blend mode = difference. Use magic wand tool, with tolerance=zero. Expected results: entirely black image, entire image selected. Actual esults (white filled selection):
    Merge both layers, invert the colors and you see the differences between the images. I applied a curves adjustment to exaggerate the differences:
    Again, this time you should see an entirely white image, if both images were identical.
    The JPEG-to-PNG conversion was done with a third party image viewer that I trust. Obviously, the possibility exists, that this conversion is not exact/losless. But I can refute this, as I converted both the source JPEG image and the converted PNG image to BMP images, and the two files that were obtained this way were bit-for-bit identical:
    So it's impossible that any loss occured, given that in the end a losless reconstruction was possible.
    Thus the error must be somewhere within Photoshop.
    Any ideas?

  • Query taking long time for EXTRACTING the data more than 24 hours

    Hi ,
    Query taking long time for EXTRACTING the data more than 24 hours please find the query and explain plan details below even indexes avilable on table's goe's to FULL TABLE SCAN. please suggest me.......
    SQL> explain plan for select a.account_id,round(a.account_balance,2) account_balance,
    2 nvl(ah.invoice_id,ah.adjustment_id) transaction_id,
    to_char(ah.effective_start_date,'DD-MON-YYYY') transaction_date,
    to_char(nvl(i.payment_due_date,
    to_date('30-12-9999','dd-mm-yyyy')),'DD-MON-YYYY')
    due_date, ah.current_balance-ah.previous_balance amount,
    decode(ah.invoice_id,null,'A','I') transaction_type
    3 4 5 6 7 8 from account a,account_history ah,invoice i_+
    where a.account_id=ah.account_id
    and a.account_type_id=1000002
    and round(a.account_balance,2) > 0
    and (ah.invoice_id is not null or ah.adjustment_id is not null)
    and ah.CURRENT_BALANCE > ah.previous_balance
    and ah.invoice_id=i.invoice_id(+)
    AND a.account_balance > 0
    order by a.account_id,ah.effective_start_date desc; 9 10 11 12 13 14 15 16
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)|
    | 0 | SELECT STATEMENT | | 544K| 30M| | 693K (20)|
    | 1 | SORT ORDER BY | | 544K| 30M| 75M| 693K (20)|
    |* 2 | HASH JOIN | | 544K| 30M| | 689K (20)|
    |* 3 | TABLE ACCESS FULL | ACCOUNT | 20080 | 294K| | 6220 (18)|
    |* 4 | HASH JOIN OUTER | | 131M| 5532M| 5155M| 678K (20)|
    |* 5 | TABLE ACCESS FULL| ACCOUNT_HISTORY | 131M| 3646M| | 197K (25)|
    | 6 | TABLE ACCESS FULL| INVOICE | 262M| 3758M| | 306K (18)|
    Predicate Information (identified by operation id):
    2 - access("A"."ACCOUNT_ID"="AH"."ACCOUNT_ID")
    3 - filter("A"."ACCOUNT_TYPE_ID"=1000002 AND "A"."ACCOUNT_BALANCE">0 AND
    ROUND("A"."ACCOUNT_BALANCE",2)>0)
    4 - access("AH"."INVOICE_ID"="I"."INVOICE_ID"(+))
    5 - filter("AH"."CURRENT_BALANCE">"AH"."PREVIOUS_BALANCE" AND ("AH"."INVOICE_ID"
    IS NOT NULL OR "AH"."ADJUSTMENT_ID" IS NOT NULL))
    22 rows selected.
    Index Details:+_
    SQL> select INDEX_OWNER,INDEX_NAME,COLUMN_NAME,TABLE_NAME from dba_ind_columns where
    2 table_name in ('INVOICE','ACCOUNT','ACCOUNT_HISTORY') order by 4;
    INDEX_OWNER INDEX_NAME COLUMN_NAME TABLE_NAME
    OPS$SVM_SRV4 P_ACCOUNT ACCOUNT_ID ACCOUNT
    OPS$SVM_SRV4 U_ACCOUNT_NAME ACCOUNT_NAME ACCOUNT
    OPS$SVM_SRV4 U_ACCOUNT CUSTOMER_NODE_ID ACCOUNT
    OPS$SVM_SRV4 U_ACCOUNT ACCOUNT_TYPE_ID ACCOUNT
    OPS$SVM_SRV4 I_ACCOUNT_ACCOUNT_TYPE ACCOUNT_TYPE_ID ACCOUNT
    OPS$SVM_SRV4 I_ACCOUNT_INVOICE INVOICE_ID ACCOUNT
    OPS$SVM_SRV4 I_ACCOUNT_PREVIOUS_INVOICE PREVIOUS_INVOICE_ID ACCOUNT
    OPS$SVM_SRV4 U_ACCOUNT_NAME_ID ACCOUNT_NAME ACCOUNT
    OPS$SVM_SRV4 U_ACCOUNT_NAME_ID ACCOUNT_ID ACCOUNT
    OPS$SVM_SRV4 I_LAST_MODIFIED_ACCOUNT LAST_MODIFIED ACCOUNT
    OPS$SVM_SRV4 I_ACCOUNT_INVOICE_ACCOUNT INVOICE_ACCOUNT_ID ACCOUNT
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_ACCOUNT ACCOUNT_ID ACCOUNT_HISTORY
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_ACCOUNT SEQNR ACCOUNT_HISTORY
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_INVOICE INVOICE_ID ACCOUNT_HISTORY
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_ADINV INVOICE_ID ACCOUNT_HISTORY
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_CIA CURRENT_BALANCE ACCOUNT_HISTORY
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_CIA INVOICE_ID ACCOUNT_HISTORY
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_CIA ADJUSTMENT_ID ACCOUNT_HISTORY
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_CIA ACCOUNT_ID ACCOUNT_HISTORY
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_LMOD LAST_MODIFIED ACCOUNT_HISTORY
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_ADINV ADJUSTMENT_ID ACCOUNT_HISTORY
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_PAYMENT PAYMENT_ID ACCOUNT_HISTORY
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_ADJUSTMENT ADJUSTMENT_ID ACCOUNT_HISTORY
    OPS$SVM_SRV4 I_ACCOUNT_HISTORY_APPLIED_DT APPLIED_DATE ACCOUNT_HISTORY
    OPS$SVM_SRV4 P_INVOICE INVOICE_ID INVOICE
    OPS$SVM_SRV4 U_INVOICE CUSTOMER_INVOICE_STR INVOICE
    OPS$SVM_SRV4 I_LAST_MODIFIED_INVOICE LAST_MODIFIED INVOICE
    OPS$SVM_SRV4 U_INVOICE_ACCOUNT ACCOUNT_ID INVOICE
    OPS$SVM_SRV4 U_INVOICE_ACCOUNT BILL_RUN_ID INVOICE
    OPS$SVM_SRV4 I_INVOICE_BILL_RUN BILL_RUN_ID INVOICE
    OPS$SVM_SRV4 I_INVOICE_INVOICE_TYPE INVOICE_TYPE_ID INVOICE
    OPS$SVM_SRV4 I_INVOICE_CUSTOMER_NODE CUSTOMER_NODE_ID INVOICE
    32 rows selected.
    Regards,
    Bathula
    Oracle-DBA

    I have some suggestions. But first, you realize that you have some redundant indexes, right? You have an index on account(account_name) and also account(account_name, account_id), and also account_history(invoice_id) and account_history(invoice_id, adjustment_id). No matter, I will suggest some new composite indexes.
    Also, you do not need two lines for these conditions:
    and round(a.account_balance, 2) > 0
    AND a.account_balance > 0
    You can just use: and a.account_balance >= 0.005
    So the formatted query isselect a.account_id,
           round(a.account_balance, 2) account_balance,
           nvl(ah.invoice_id, ah.adjustment_id) transaction_id,
           to_char(ah.effective_start_date, 'DD-MON-YYYY') transaction_date,
           to_char(nvl(i.payment_due_date, to_date('30-12-9999', 'dd-mm-yyyy')),
                   'DD-MON-YYYY') due_date,
           ah.current_balance - ah.previous_balance amount,
           decode(ah.invoice_id, null, 'A', 'I') transaction_type
      from account a, account_history ah, invoice i
    where a.account_id = ah.account_id
       and a.account_type_id = 1000002
       and (ah.invoice_id is not null or ah.adjustment_id is not null)
       and ah.CURRENT_BALANCE > ah.previous_balance
       and ah.invoice_id = i.invoice_id(+)
       AND a.account_balance >= .005
    order by a.account_id, ah.effective_start_date desc;You will probably want to select:
    1. From ACCOUNT first (your smaller table), for which you supply a literal on account_type_id. That should limit the accounts retrieved from ACCOUNT_HISTORY
    2. From ACCOUNT_HISTORY. We want to limit the records as much as possible on this table because of the outer join.
    3. INVOICE we want to access last because it seems to be least restricted, it is the biggest, and it has the outer join condition so it will manufacture rows to match as many rows as come back from account_history.
    Try the query above after creating the following composite indexes. The order of the columns is important:create index account_composite_i on account(account_type_id, account_balance, account_id);
    create index acct_history_comp_i on account_history(account_id, invoice_id, adjustment_id, current_balance, previous_balance, effective_start_date);
    create index invoice_composite_i on invoice(invoice_id, payment_due_date);All the columns used in the where clause will be indexed, in a logical order suited to the needs of the query. Plus each selected column is indexed as well so that we should not need to touch the tables at all to satisfy the query.
    Try the query after creating these indexes.
    A final suggestion is to try larger sort and hash area sizes and a manual workarea policy.alter session set workarea_size_policy = manual;
    alter session set sort_area_size = 2147483647;
    alter session set hash_area_size = 2147483647;

  • JPEG decode: how to use it?

    Hello experts,
    I am using Labview 7 Express and Windows XP.
    I am downloading continuous datastreams of JPEG images from network cameras (Motion-JPEG streams, not MPEG).
    I use the TCP Read VI to get the streams, and I save them to disk on the fly. It works really great. I can also extract the JPEG files from the M-JPEG files on the fly, which works fine too. Now, I would like to display the JPEG images, using the JPEG Decode VI, but I am puzzled about how to do that: the output of the VI is a cluster of a string and a U32 number. What am I supposed to do with this number ? Is it a pointer?
    Thanks!
    Philippe

    Philippe,
    I am trying to do the exact same thing as you here: I have a network camera (Axis 206), and I am currently using 'URL Get HTTP Document.vi' to receive the stream og MJPG (multipart JPEG's). This works fine, but I have som problems displaying and compressing the images. At the end, logging data from a DAQ-card is supposed to be combined with the image stream into a single file.
    The 'IMAQ JPEG Decode.vi' is supposed to compress the images into a binary format. I have tried the setup you proposed, but any way I implement this vi the vi executes for less than a second and Labview shuts down.
    Any ideas what may be wrong? Displaying live JPEG's (not from a file) is obviously not something NI gave much thought.

  • Marydee-You asked me about resizing apps for jpeg images & how 2 get info

    Marydee- You asked me about resizing apps for jpeg images. And you also asked how to get photo info for each image in iphoto
    Here's what I found in the iPhoto6 Help Menu:
    Showing a photo's image and camera information
    iPhoto stores EXIF information with each photo in your library. This information includes the photo's image size, the date and time it was taken, and the type of camera it was taken on, as well as important exposure information, such as the shutter speed, aperture, and film ISO.
    To show image and camera information:
    Select the photo and choose Photos > Get Info.
    You can also see a photo's title, date taken, rating, format, and comments by clicking the Information button in the bottom-left corner of the iPhoto window.
    Also please take a look at these prior discussions in iPhoto Forum/s:
    http://discussions.apple.com/thread.jspa?messageID=3212997&#3212997
    http://discussions.apple.com/thread.jspa?messageID=4535542&#4535542
    http://kstudio.net/re.html
    Hope the above helps and good luck on this.
    (3) G4 PM's/(3) S-Drives/Sony TRV900/Nikons/6FWHD's/PS7/iLife06/FCPHD/DVDSP/etc.   Mac OS X (10.4.8)  

    Marydee- You asked me about resizing apps for jpeg images. And you also asked how to get photo info for each image in iphoto
    Here's what I found in the iPhoto6 Help Menu:
    Showing a photo's image and camera information
    iPhoto stores EXIF information with each photo in your library. This information includes the photo's image size, the date and time it was taken, and the type of camera it was taken on, as well as important exposure information, such as the shutter speed, aperture, and film ISO.
    To show image and camera information:
    Select the photo and choose Photos > Get Info.
    You can also see a photo's title, date taken, rating, format, and comments by clicking the Information button in the bottom-left corner of the iPhoto window.
    Also please take a look at these prior discussions in iPhoto Forum/s:
    http://discussions.apple.com/thread.jspa?messageID=3212997&#3212997
    http://discussions.apple.com/thread.jspa?messageID=4535542&#4535542
    http://kstudio.net/re.html
    Hope the above helps and good luck on this.
    (3) G4 PM's/(3) S-Drives/Sony TRV900/Nikons/6FWHD's/PS7/iLife06/FCPHD/DVDSP/etc.   Mac OS X (10.4.8)  

  • Should I use Camera Raw 5.0 for JPEG photo editing?

    Hello,
    I have Camera Raw 5.0 through Bridge CS4 and I shoot photos on my Nikon D40X in JPEG.  Should I NOT be using Camera Raw to edit my non-RAW photos?  Is it degrading my images?  I noticed when I did some editing and saved the photo, the new photo size was about 25% of the original JPEG size. 
    Thanks in advance!!

    To tell you the truth, you might be better off just shooting RAW in the first place... but I'm surprised by your decrease in size... I can only echo the suggestion to check the JPEG quality box and the file format used.  You didn't crop it to some different resolution, did you?
    PS: I'm getting into photo editing pen tablets.  You might try one some time for editing.

  • Is ACR as good as Photoshop for jpeg processing?

    I have CS3 and use ACR 4.1 for processing my RAWs. I love it's intuitive easy workflow.
    I have many many jpeg files from my pre-RAW days that I'd like to improve by doing slight adjustments i.e. crop, adjust tone, WB, set white point, contrast, saturation, colour tweaking,resize, sharpen. I do this so they can be displayed online on a Zenfolio or pBase account, NOT for printing.
    I like ACR's workflow and myriad of adjustment options yet I wonder if it is a better platform for jpeg processing than Photoshop. For ease of use it clearly is, but what about end product?
    For best results, Photoshop requires me to create a new adjustment layer for each adjustment. I DO speed up the workflow by creating Actions that convert the files to 16 bits as well as creating new adjustment layers upfront. I still have to apply batch processes to merge layers, resize, sharpen, convert back to 8 bit and save as jpg. But I still have to go in to each layer and make adjustments. ACR 4.1 is much easier because all the sliders are more easily accessible. But I wonder if it sacrifices results because I don't know if it is working in 8 or 16 bits. With ACR workflow is easier to recover shadow/highlight detail (though I am not sure if it is more effective).
    For the best results am I still better off using PS for jpeg tweaking, despite its more cumbersome workflow, because I can work in 16 bits?
    I really like ACR's workflow. But from what little theory that I do have it sounds like PS ability to work in 16 bits still gives it the edge.Or am I missing something here?

    "...if you open a JPEG...it is converted to 16 bit, linear Pro Photo RGB for editing. It's been shown (by Lightroom) ...that the totality of the edits in CR are in linear ProPhoto you could see a real benefit to processing camera JPEGs (as apposed to already edited JPEGS saved out of like Photoshop) over doing similar edits in Photoshop."
    This is interesting and good news! Now my grasp of all this technical talk is limited so bear with me if I am not up to speed. I just want to make sure I understand this.
    ACR opens all 8 bit JPEGs automatically in 16 bit ProPhoto workspace BEFORE the actual editing is performed?
    At the risk of hopelessly confusing myself even further, why would ACR be a better platform for JPEG processing with out of camera jpegs but not previously edited JPEGs?
    Jeff, I know you've stated "it's beed shown by Lightroom" but can you show me this? Where has it been shown? A link, webpage? That way I can look at this myself, spare you trying to explain it to me and (yes this is pure self interest) hopefully free time up for you to work on the ACR 4.1 book I am looking forward to.
    Thanks for the time you devote to helping us noobs pursue our passions!!

  • JPEG Decoder runtime error.

    Hi All,
    I want to build a jpegdecoder.swc because the library from http://code.google.com/p/as3-jpeg-decoder/downloads/list
    Has a memory leak.
    When I try to build with out making any changes and use the library it is throwing error.
    Step I followed:
    ===============================
    extracted   jpeg-6b.tar.gz
    ./configure
    make
    make test
    copied the main.c file to jpeg-6b directory
    alc-on;
    gcc main.c -O3 -Wall -swc -o jpegdecoder.swc
    WARNING: While resolving call to function 'main' arguments were dropped!
    3313.achacks.swf, 267843 bytes written
    frame rate: 60
    frame count: 1
    69 : 4
    72 : 267772
    76 : 34
    1 : 0
    0 : 0
    frame rate: 24
    frame count: 1
    69 : 4
    77 : 506
    64 : 31
    63 : 16
    65 : 4
    9 : 3
    41 : 26
    82 : 471
    1 : 0
    0 : 0
      adding: catalog.xml (deflated 75%)
      adding: library.swf (deflated 70%)
    And copied the jpegdecoder.swc to flex project.
    But when i run the project I am getting the below error
    =====================================
    Undefined sym: _jpeg_std_error
    at Function/<anonymous>()
    at Function/<anonymous>()
    at org.bytearray.decoder::JPEGDecoder/parse()[E:\chaitanya\WorkSpace_Flex_4\JpegDecodeTest_C ustom_JPEGLib\src\org\bytearray\decoder\JPEGDecoder.as:62]
    Please help me to solve the problem.
    Thanks in advance.

    Forget to attach the main.c file
    main.c
    =====================================================
    #include <stdio.h>
    #include "jpeglib.h"
    #include "cdjpeg.h"
    #include "AS3.h"
    #include <stdlib.h>
    int imageWidth;
    int imageHeight;
    int numComponents;
    int colorComponents;
    unsigned char *image;
    AS3_Val read_jpeg_file( char *filename )
    struct jpeg_decompress_struct cinfo;
    struct jpeg_error_mgr jerr;
    FILE *infile = fopen( filename, "rb" );
    if ( !infile )
    printf("Error opening jpeg file %s\n!", filename );
    return AS3_Int(-1);
    cinfo.err = jpeg_std_error( &jerr );
    jpeg_create_decompress( &cinfo );
    jpeg_stdio_src( &cinfo, infile );
    jpeg_read_header( &cinfo, TRUE );
    jpeg_start_decompress(&cinfo);
    // storing variables
    imageWidth = cinfo.image_width;
    imageHeight = cinfo.image_height;
    numComponents =  cinfo.num_components;
    colorComponents = cinfo.out_color_components;
    /* allocate data and read the image as RGBRGBRGBRGB */
    image = malloc(cinfo.output_width * cinfo.output_height * 3);
    int lng = cinfo.output_height;
    int i = 0;
    for(i=0; i < lng; i++)
    unsigned char * ptr = image + i * 3 * cinfo.output_width;
    jpeg_read_scanlines(&cinfo, &ptr, 1);
    (void) jpeg_finish_decompress(&cinfo);
    jpeg_destroy_decompress(&cinfo);
    return AS3_Int(1);
    static AS3_Val parseJPG( void *self, AS3_Val args )
    char * fileName;
    AS3_ArrayValue(args, "StrType", &fileName);
    read_jpeg_file( fileName );
    return AS3_Array("IntType, IntType, IntType, IntType, IntType", imageWidth, imageHeight, numComponents, colorComponents, (int)image);
    int main()
    AS3_Val parseJPGAlias = AS3_Function( NULL, parseJPG);
    AS3_Val result = AS3_Object( "parseJPG:AS3ValType", parseJPGAlias );
    AS3_Release( parseJPGAlias );
    AS3_LibInit( result );
    return 0;
    ============================================================

  • External xmp file for JPEG

    Hi,
    Is there any possibility to save develop settings for JPEG file into external XMP file - not inside JPEG?
    It is confusing for all backup software. Backup system have to transfer all modified JPEG files - not lightweight xmp files. Moreover, modification date of original JPEG file changes. I would like to have all my original JPEG files untouched as RAW files.
    Thanks for suggestions
    Sebastian

    ksebman wrote:
    My backup software transfers files through the Internet. So if I make small changes to hundreds of files, I have to transfer all JPEGs which are relatively huge. It takes a long time. External xmp file would be better because of its textual nature and size. Moreover I would like to have original files, not modified by any software (even if image data is untouched). I do like the way how RAW files are handled - no modifications at all.
    I know, there are people who like having metadata in JPEG files because they use other applications. Searching through the Internet I found that there is a lot of people who decide not to use LR from that reason (modified original JPEG file). They set read-only attribute for all JPEGs to prevent this behavior.
    It's really inconvenient - possibility to save external XMP file as in RAW files would be very helpful.
    Best Regards
    Sebastian
    You do not need to back up all those JPEGs after each change. Back them up once at the start, and then back up the lrcat file (maybe zipped) routinely. This means both the original image data and all your editing work are backed up, and you could reconstruct your picture collection perfectly from your backup. The sidecar-based backup scheme would mean that all your work wouldn't be backed up (or you'd be forced to avoid a range of Lightroom features).
    It's a wrong-headed reason to avoid LR. XMP is not written into proprietary raw files because Adobe consider it too risky. With JPEGs, it isn't - and if you are worried, just backup a virgin JPEG immediately after importing them.
    John

  • Do I need to keep my external hard drive connected at all times for time capsule?

    Do I need to keep my external hard drive connected at all times for time capsule?

    Hi,
    I have a similar question. I have backed up my external hard drive through my computer, onto my TC. When I go into TM, it doesn't show the external hard drive unless it is connected to the computer. Can I access the info from the external hard drive that is on the TC if I don't have the hard drive plugged in? If so, how can I do that?
    Thanks,
    Bernadette

  • How to get users' login logout time for user IDs for a specific date?

    Dear All,
    There is a case I being requested to retrieve the Userid, User Name,
    User Group, User Dept, Date, Login Time, Logout Time in a specific date, for example, 21.05.2009.
    How should I retrieve the information? The user want to input specific date and user group then return the details that mentioned above.
    I try with SUIM->Users->By Logon Date and Password Change... but I can't specific the date that I want ...
    I try with SM19 (Security Audit Log), but unfortunately in my system this is not activated.
    I've seek for SAP's advise, and they say need to ask abaper to developr a report in order to get such details....
    Do you guys have any other methods?
    Do you guys know which tables will contain the details as mentioned above?
    Best Regards,
    Ken

    Unfortunately without the audit log, you're going have a hard time finding this information.  As mentioned, ST03N will give you some information.  If your systems daily workload aggregation goes back to the date you require then you'll be able to get a list of all users who logged on that day.  ST03N doesn't keep time stamps just response times.
    My only idea is VERY labor intensive.  If your DB admin can retrieve a save of the database from that day then table USR02 will hold a little more information for you.  It will contain last login times for that day.  If your system backup policy happened to have saved the contents of folder "/usr/sap/<SID>/<instance>/data" then you potentially have access to all the data you require.  The stat file will have recorded every transaction that took place during that day.  If that file is restored you could use program RSSTAT20 to query against it.
    Good luck and turn on the audit log as it makes your life much easier!

  • I updated my iphone and when it came time for activation it won't work and keeps telling me to try again. At the top it says "No Service" and I have my SIM card in and a good WiFi connection and have connected it through iTunes but it says I have no SIM

    I updated my iphone and when it came time for activation it won't work and keeps telling me to try again. At the top it says "No Service" and I have my SIM card in and a good WiFi connection and have connected it through iTunes but it says I have no SIM card and need to disconnect and insert my SIM. I don't understand why this keeps happening and it's been going on for a wile now. I have tried over and over again to get this iPhone to work but nothig is happening. I've even gone on the website for support (apple.com/support) but cannot find anything that will help me with this situation. Can someone please help me find a solution to this problem? I have been without a phone and do not have money to buy another one and it is crucial for me to get it fixed. Thanks.

    wesb
    What computer operating system is involved in the Premiere Elements 11 and 13 issues? Same computer or different ones? Are you installing from purchased download installation files or from purchased installation disc? Does Premiere Elements 11 work completely on this computer whereas 13 will not?
    Let us go through the typical drill so as to take nothing for granted.
    1. Does the problem exist with or without the antivirus and firewall(s) disabled? Are you working with an individual home computer or in a
    school or company network?
    2. Are you running the program as Administrator and is there any "domain" account involved?
    3. Is your video card/graphics card up to date according to the web site of the manufacturer of the card?
    4. Do you have the latest version of QuickTime installed on the computer with Premiere Elements?
    Let us start by ruling in or out any of the above, and then we can decide what next.
    Any questions or need clarification, please do not hesitate to ask.
    Thank you.
    ATR

  • Generic extractor FM : taking 5-6 hours time for 3 months to BW urgent:

    Dear experts,
    I have designed a FM for generic extraction , which is taking 5-6 hoours time for 3 months data i.e 24 lakhs records to BW up to PSA .
    i have given the coding below plz provide any modifications to improve the performance.....
    FUNCTION zhr_att_analysis.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(I_REQUNR) TYPE  SRSC_S_IF_SIMPLE-REQUNR
    *"     VALUE(I_DSOURCE) TYPE  SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
    *"     VALUE(I_MAXSIZE) TYPE  SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
    *"     VALUE(I_INITFLAG) TYPE  SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
    *"     VALUE(I_REMOTE_CALL) TYPE  SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
    *"  TABLES
    *"      I_T_SELECT TYPE  SBIWA_T_SELECT OPTIONAL
    *"      I_T_FIELDS TYPE  SBIWA_T_FIELDS OPTIONAL
    *"      E_T_DATA STRUCTURE  ZHR_ATT_MAIN OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    Auxiliary Selection criteria structure
      DATA: l_s_select TYPE sbiwa_s_select.
    Maximum number of lines for DB table
      STATICS: l_maxsize TYPE sbiwa_s_interface-maxsize.
    Select ranges
      RANGES: l_r_pernr FOR pa9004-pernr,
              l_r_bukrs FOR pa0001-bukrs,
              l_r_persg FOR pa0001-persg,
              l_r_begda FOR pa9004-begda,
              l_r_persk FOR pa0001-persk.
    Maximum number of lines for DB table
      STATICS: s_s_if TYPE srsc_s_if_simple,
    counter
              s_counter_datapakid LIKE sy-tabix,
    cursor
              s_cursor TYPE cursor.
    *"Declaration of store data
    TYPES : BEGIN OF ty_9004,
             pernr TYPE persno,
             endda TYPE endda,
             begda TYPE begda,
             zrs TYPE zrs,
             zstorecode TYPE zstorecode,
            END OF ty_9004.
    *"Declaration of employee data
      TYPES : BEGIN OF ty_0001,
              pernr TYPE pernr_d,
              endda TYPE endda,
              begda TYPE begda,
             AEDTM TYPE AEDAT,
              bukrs TYPE bukrs,
              persg TYPE persg,
              persk TYPE persk,
              END OF ty_0001.
    *"Declaration of expected mandays
      TYPES : BEGIN OF ty_0000,
              pernr TYPE persno,
              endda TYPE endda,
              begda TYPE begda,
              aedtm TYPE aedat,
              stat2 TYPE stat2,
              massn TYPE massn,
              END OF ty_0000.
    *"Declaration of man days swiped
      TYPES : BEGIN OF ty_teven,
              pernr TYPE pernr_d,
              ldate TYPE ldate,
              satza TYPE retyp,
              aedtm TYPE aedat,
              counter_swiped TYPE i,
              END OF ty_teven.
    *"Declaration of Man days regularized
      TYPES : BEGIN OF ty_2002,
              pernr TYPE pernr_d,
              subty TYPE subty,
              endda TYPE endda,
              begda TYPE begda,
              aedtm TYPE aedat,
              END OF ty_2002.
    *"Declaration of Man days lostdue to leave
      TYPES : BEGIN OF ty_2001,
              pernr TYPE pernr_d,
              subty TYPE subty,
              endda TYPE endda,
              begda TYPE begda,
              aedtm TYPE aedat,
              END OF ty_2001.
    *****Declaration of weekly off
      TYPES : BEGIN OF ty_2003,
              pernr TYPE pernr_d,
              subty TYPE subty,
              endda TYPE endda,
              begda TYPE begda,
              aedtm TYPE aedat,
              tprog TYPE tprog,
              END OF ty_2003.
    Auxiliary Selection criteria structure
      DATA :
            it_0001 TYPE TABLE OF ty_0001,
            wa_0001 TYPE ty_0001,
            it_0000 TYPE TABLE OF ty_0000,
            wa_0000 TYPE ty_0000,
            it_teven TYPE TABLE OF ty_teven,
            wa_teven TYPE ty_teven,
            it_2002 TYPE TABLE OF ty_2002 ,
            wa_2002 TYPE ty_2002,
            it_2001 TYPE TABLE OF ty_2001,
            wa_2001 TYPE ty_2001,
            it_2003 TYPE TABLE OF ty_2003,
            wa_2003 TYPE ty_2003,
            wa_target TYPE zhr_att_main.
      DATA : date  TYPE dats,
      doj TYPE dats,
      dol TYPE dats,
      date1 TYPE dats,
      date2 TYPE dats,
             counter(9)  TYPE n.
    Initialization mode (first call by SAPI) or data transfer mode
    (following calls) ?
      IF i_initflag = sbiwa_c_flag_on.
    Initialization: check input parameters
                    buffer input parameters
                    prepare data selection
    Check DataSource validity
        CASE i_dsource.
          WHEN 'ZHR_ATT_ANALYSIS'.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE e009(r3). ENDIF.
            log_write 'E'                  "message type
                      'R3'                 "message class
                      '009'                "message number
                      i_dsource            "message variable 1
                      ' '.                 "message variable 2
            RAISE error_passed_to_mess_handler.
        ENDCASE.
        APPEND LINES OF i_t_select TO s_s_if-t_select.
    Fill parameter buffer for data extraction calls
        s_s_if-requnr    = i_requnr.
        s_s_if-dsource   = i_dsource.
        s_s_if-maxsize   = i_maxsize.
    Fill field list table for an optimized select statement
    (in case that there is no 1:1 relation between InfoSource fields
    and database table fields this may be far from beeing trivial)
        APPEND LINES OF i_t_fields TO s_s_if-t_fields.
      ELSE.                 "Initialization mode or data extraction ?
    Data transfer: First Call      OPEN CURSOR + FETCH
                   Following Calls FETCH only
    First data package -> OPEN CURSOR
        IF s_counter_datapakid = 0.
          LOOP AT s_s_if-t_select INTO l_s_select WHERE fieldnm = 'PERNR'.
            MOVE-CORRESPONDING l_s_select TO l_r_pernr.
            APPEND l_r_pernr.
          ENDLOOP.
          LOOP AT s_s_if-t_select INTO l_s_select WHERE fieldnm = 'BUKRS'.
            MOVE-CORRESPONDING l_s_select TO l_r_bukrs.
            APPEND l_r_bukrs.
          ENDLOOP.
          LOOP AT s_s_if-t_select INTO l_s_select WHERE fieldnm = 'PERSG'.
            MOVE-CORRESPONDING l_s_select TO l_r_persg.
            APPEND l_r_persg.
          ENDLOOP.
          LOOP AT s_s_if-t_select INTO l_s_select WHERE fieldnm = 'BEGDA'.
            MOVE-CORRESPONDING l_s_select TO l_r_begda.
            APPEND l_r_begda.
          ENDLOOP.
          LOOP AT s_s_if-t_select INTO l_s_select WHERE fieldnm = 'PERSK'.
            MOVE-CORRESPONDING l_s_select TO l_r_persk.
            APPEND l_r_persk.
          ENDLOOP.
          OPEN CURSOR WITH HOLD s_cursor FOR
    populate only store code employess does not have empty store codes
            SELECT apernr bpernr bendda bbegda bbukrs bpersg b~persk FROM pa9004 AS a INNER JOIN pa0001 AS b
                    ON  apernr = bpernr
                     WHERE a~pernr IN l_r_pernr AND
                          a~zstorecode <> ''    AND
                          bukrs IN l_r_bukrs  AND
                          persg IN l_r_persg AND
                          persk IN l_r_persk.
        ENDIF.
    Fetch records into interface table.
      named E_T_'Name of extract structure'.
        FETCH NEXT CURSOR s_cursor
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE  it_0001
                   PACKAGE SIZE s_s_if-maxsize.
        IF sy-subrc <> 0.
          CLOSE CURSOR s_cursor.
          RAISE no_more_data.
        ELSE.
         break-point.
          IF l_r_begda-high = '00000000' AND l_r_begda-low = '00000000'.
            date1 = sy-datum - 1.
            date2 = sy-datum - 1.
          ELSE.
            date1 = l_r_begda-low .
            date2 = l_r_begda-high.
          ENDIF.
          SORT it_0001 BY pernr persg begda endda bukrs.
          DELETE it_0001 WHERE persg NE 'T' AND
                               persg NE 'K' AND
                               persg NE 'P' AND
                               persg NE 'W'.
          DELETE ADJACENT DUPLICATES FROM it_0001 COMPARING pernr begda endda bukrs.
    populate all the employees that are active in pa9004.
          IF NOT it_0001[] IS INITIAL.
            SELECT pernr endda begda aedtm massn FROM pa0000
                   INTO CORRESPONDING FIELDS OF TABLE it_0000
                   FOR ALL ENTRIES IN it_0001
                   WHERE pernr = it_0001-pernr
                     AND ( massn = 'A1' OR massn = '00' OR massn = 'A6' OR massn = 'A3' ).
            SORT it_0000 BY pernr begda DESCENDING.
          ENDIF.
    populate SWIPED MAN DAYS data
          IF NOT it_0001[] IS INITIAL.
            SELECT pernr ldate satza aedtm FROM teven
               INTO CORRESPONDING FIELDS OF  TABLE it_teven
               FOR ALL ENTRIES IN it_0001
               WHERE pernr = it_0001-pernr AND
                                 satza = 'P01'
                                 AND ldate IN l_r_begda.
            SORT it_teven BY pernr ldate.
          ENDIF.
    **populate REGULARIZATION DAYS data
          IF NOT it_0001[] IS INITIAL.
            SELECT pernr subty endda begda aedtm FROM pa2002
              INTO CORRESPONDING FIELDS OF  TABLE it_2002
               FOR ALL ENTRIES IN it_0001
               WHERE pernr = it_0001-pernr
                AND  begda >= date1
                AND endda <= date2 .
            SORT it_2002 BY pernr begda endda.
          ENDIF.
    **populate LEAVE DAYS data
          IF NOT it_0001[] IS INITIAL.
            SELECT pernr subty endda begda aedtm FROM pa2001
              INTO CORRESPONDING FIELDS OF   TABLE it_2001
               FOR ALL ENTRIES IN it_0001
               WHERE pernr = it_0001-pernr
                AND  begda >= date1
                AND endda <= date2  .
            SORT it_2001 BY pernr begda endda .
          ENDIF.
    **populate WEEKLY OFF data
          IF NOT it_0001[] IS INITIAL.
            SELECT pernr subty endda begda aedtm tprog FROM pa2003
              INTO CORRESPONDING FIELDS OF  TABLE it_2003
                 FOR ALL ENTRIES IN it_0001
                 WHERE pernr = it_0001-pernr AND
                              tprog = 'OFF'
                               AND  begda >= date1
                               AND endda <= date2  .
            SORT it_2003 BY pernr begda endda.
          ENDIF.
          date = sy-datum.
    ********added changes on 06.04.2008**************action type & date dependent extaction****
    loop over it_0001 table
         BREAK-POINT.
          LOOP AT it_0001 INTO wa_0001.
           if sy-tabix = 1.
            counter = 0.
    for expected mandays
            LOOP AT it_0000 INTO wa_0000 WHERE pernr = wa_0001-pernr .
              IF wa_0000-massn = 'A1' OR wa_0000-massn = '00' OR wa_0000-massn = 'A3'.
                doj = wa_0000-begda.
               if wa_0000-endda = '99991231'.
              date2  = sy-datum.
               else.
                dol = date2.
               endif.
              ELSEIF wa_0000-massn = 'A6'.
                dol = wa_0000-begda.
              ENDIF.
            ENDLOOP.
            IF  date1 <= wa_0001-begda AND date2 <= wa_0001-endda AND date2 >= wa_0001-begda AND date1 <= wa_0001-endda.
              counter = date2 - wa_0001-begda .
              counter = counter + 1.
              date = wa_0001-begda - 1.
            ELSEIF date1 >= wa_0001-begda  AND date2 >= wa_0001-endda AND date2 >= wa_0001-begda AND date1 <= wa_0001-endda.
              counter =  wa_0001-endda - date1.
              counter = counter + 1.
              date = date1 - 1.
            ELSEIF date1 >= wa_0001-begda AND date2 <= wa_0001-endda AND  date2 >= wa_0001-begda AND date1 <= wa_0001-endda.
              counter = date2  - date1.
              counter = counter + 1.
              date = date1 - 1.
            ELSEIF  date1 <= wa_0001-begda AND  date2 >= wa_0001-endda AND date2 >= wa_0001-begda AND date1 <= wa_0001-endda.
              counter = wa_0001-endda - wa_0001-begda.
              counter = counter + 1.
              date =  wa_0001-begda - 1.
            ELSE.
              CONTINUE.
            ENDIF.
    ********completed changes on 06.04.2008**************action type & date dependent extaction**
    split records from date of joining to till date
            DO counter  TIMES.
              CLEAR : wa_teven , wa_target.
              date = date + 1.
              wa_target-date1 = date.
              wa_target-pernr = wa_0001-pernr.
              wa_target-bukrs = wa_0001-bukrs.
              wa_target-persg = wa_0001-persg.
              wa_target-persk = wa_0001-persk.
    for expected mandays count
              IF wa_target-date1 >= doj AND wa_target-date1 <= dol.
                wa_target-expectedmandays = 1.
                wa_target-aedtm = wa_0000-aedtm.
    for swiped mandays
                READ TABLE it_teven INTO wa_teven WITH KEY pernr = wa_target-pernr
                                                           ldate = wa_target-date1 BINARY SEARCH.
                IF sy-subrc = 0.
                  wa_target-swiped_days = 1.
                  wa_target-aedtm = wa_teven-aedtm.
                ENDIF.
    for regularized days
                LOOP AT it_2002 INTO wa_2002 WHERE pernr = wa_target-pernr
                   AND  ( endda GE wa_target-date1 AND begda LE wa_target-date1 ).
                  wa_target-reg_days  = 1.
                  wa_target-subty2 = wa_2002-subty.
                  wa_target-aedtm = wa_2002-aedtm.
                ENDLOOP.
    for leave days
                LOOP AT it_2001 INTO wa_2001 WHERE pernr = wa_target-pernr
                   AND  ( endda GE wa_target-date1 AND begda LE wa_target-date1 ).
                  wa_target-leave_days  = 1.
                  wa_target-subty1 = wa_2001-subty.
                  wa_target-aedtm = wa_2001-aedtm.
                ENDLOOP.
    for weekly off days
                LOOP AT it_2003 INTO wa_2003 WHERE pernr = wa_target-pernr
                   AND  ( endda GE wa_target-date1 AND begda LE wa_target-date1 ).
                  wa_target-off_days   = 1.
                  wa_target-aedtm = wa_2003-aedtm.
                ENDLOOP.
    append work area to e_t_data
                APPEND wa_target TO  e_t_data.
              ENDIF.
            ENDDO.
          ENDLOOP.
    clear internal tables
          CLEAR :  it_0000 , it_0001 , it_2001 , it_2002 , it_2003 , it_teven.
        ENDIF.
        s_counter_datapakid = s_counter_datapakid + 1.
      ENDIF.   "Initialization mode or data extraction ?
    ENDFUNCTION.

    Hi Guys
    I can have both your cases looked into for you.
    Please send me an email using the contact us form in my profile. The address for this form in the section 'about me'.
    Thanks
    Stuart
    BTCare Community Mod
    If we have asked you to email us with your details, please make sure you are logged in to the forum, otherwise you will not be able to see our ‘Contact Us’ link within our profiles.
    We are sorry that we are unable to deal with service/account queries via the private message(PM) function so please don't PM your account info, we need to deal with this via our email account :-)

  • Longer time for Material Availability check while creation of prd order.

    Hi guys,
    I am facing a weird problem while creating production orders thru CO01.
    I enter the component and plant and I am also using the forward scheduling option.
    for some reason, SAP is taking a long time for material availability check when I hit the release button.
    Sometimes its taking more than an hour. Its happening with few specific BOM's, and I have checked the master data but I could hardly find a problem in master data.
    Can someone suggest me some tips ??
    Thanks & Regards,
    Sashivardhan

    Hi,
    Please check the Availability check control maintained for Components it should be 01 or 02. Also check the issue storage location maintained or not. You can maintain issue storage location in BOM in Status/lng text tab in Production Storage Location.
    Hope this will help.
    Regards,
    Navin

  • Set frame delay time for animated gif using ImageIO

    I'm trying to change the delay time of each frame for an animated gif by changing the metadata for each frame as following but it doesn't change anything.
    static private IIOMetadata setMetadata(IIOMetadata metadata, int delayMS) throws IOException
              Node root = metadata.getAsTree("javax_imageio_gif_image_1.0");
              for (Node c = root.getFirstChild(); c != null; c = c.getNextSibling())
                   String name = c.getNodeName();
                   if (c instanceof IIOMetadataNode)
                        IIOMetadataNode metaNode = (IIOMetadataNode) c;
                        if ("GraphicControlExtension".equals(name))
                             metaNode.setAttribute("delayTime", Integer.toString(delayMS));
         }Does anyone know how to set delay time for animated gif using ImageIO ?

    I'm trying to change the delay time of each frame for an animated gif by changing the metadata for each frame as following but it doesn't change anything.
    static private IIOMetadata setMetadata(IIOMetadata metadata, int delayMS) throws IOException
              Node root = metadata.getAsTree("javax_imageio_gif_image_1.0");
              for (Node c = root.getFirstChild(); c != null; c = c.getNextSibling())
                   String name = c.getNodeName();
                   if (c instanceof IIOMetadataNode)
                        IIOMetadataNode metaNode = (IIOMetadataNode) c;
                        if ("GraphicControlExtension".equals(name))
                             metaNode.setAttribute("delayTime", Integer.toString(delayMS));
         }Does anyone know how to set delay time for animated gif using ImageIO ?

Maybe you are looking for

  • Create Goods Receipt with an Inbound Delivery

    Hi, Can you anybody help me, how to create a Goods Receipt with correspond to Inbound Delivery. Which FM or BAPI avaliable for this. Anybody did it before please pass to me with details? Thanks in Advance Cino C B Edited by: Cili on Feb 11, 2008 8:19

  • HT1766 grayed out wifi

    I did all of the above and my wifi is STILL grayed out.  Don't know what to do.  I am going over my plan all the time in data usage because I can't use wifi at home, and my bluetooth won't work in the car which is unsafe.  Help!

  • Problem deleting rows using JDBC

    Hi, I have a problem with the following code listed below. I am attempting to delete a user's details from a SQLServer db based on the user selected from a combobox. The code given below is just a section and relates to a JButton I have on the applic

  • How to start pop3 with out store

    Hi All, we messaging server 7.3 we want to configure MTA and pop3 one server and messaging store another server. Regards kkdas

  • I want to know when a sql-query was excuted in DBA_HIST_SQL_PLAN !!

    Hi, all. I want to know when a sql query wqas excuted in past 3 month. select * from DBA_HIST_SQL_PLAN where plan_hash_value='1844343569' is working? The plan_hash_value is from v$sql_plan of current instance. There ware 3times database shutdown/star