TWAIN Working Group

Newsletter Signup
Donate
Help keep TWAIN free
  • About TWAIN
    • What’s New?
    • News
    • Events
    • Membership
    • Consider a Donation
    • Contact Us
  • Why TWAIN?
  • Developers
    • Driver Developer
    • Application Developer
    • TWAIN Features
    • Specification & Tools
    • Self Certification Process
  • Support Forums
  • Scanner End-User
  • Find Certified Drivers
    • Facebook
    • LinkedIn
    • Vimeo

How To: Compressed memory transfers

Forums › TWAIN Classic › How To: Compressed memory transfers

  • This topic has 4 replies, 5 voices, and was last updated 13 years, 7 months ago by PandeleFlorin.
Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • September 29, 2005 at 7:32 pm #21798 Reply
    spike
    Participant
    • Topics - 10
    • Replies - 139
    • Total Posts - 149

    Can anybody share any experience with doing compressed memory transfers? Quirks, pitfalls, etc.? The TWAIN 1.9 spec is pretty terse on this subject.

    Can anybody suggest an under 1000$US scanner that supports compressed memory transfers, for testing and development?

    How do you tell which values of ICAP_COMPRESSION apply to files, and which to memory transfers? I imagine that you set ICAP_XFERMECH to TWSX_MEMORY, and then query ICAP_COMPRESSION. But does that really work in practice?

    October 3, 2005 at 4:27 pm #23116 Reply
    JonHarju
    Participant
    • Topics - 0
    • Replies - 13
    • Total Posts - 13

    @spike wrote:

    Can anybody share any experience with doing compressed memory transfers? Quirks, pitfalls, etc.? The TWAIN 1.9 spec is pretty terse on this subject.

    Can anybody suggest an under 1000$US scanner that supports compressed memory transfers, for testing and development?

    How do you tell which values of ICAP_COMPRESSION apply to files, and which to memory transfers? I imagine that you set ICAP_XFERMECH to TWSX_MEMORY, and then query ICAP_COMPRESSION. But does that really work in practice?

    No real pitfalls, other than the fact that G4 is raw G4 data – ImageInfo is required to make any real use of the data after collecting it all, the only field of th TW_IMAGEMEMXFER structure that you can use is the BytesWritten – all others should be (-1)

    JPEG is a different animal, the entire JPEG file is transferred in memory and can be written directly to a file with extension .jpg to be immediately useful.

    Just loop until you get a TWRC_XFERDONE – there is no real way to figure out how much data you can expect or how many calls you need to make to ImageMemXfer, as each compressed image size depends on content.

    I can’t direct you to a scanner within that price range, I can tell you that most scanners I have worked with that are sub 30 pages per minute tend not to support compression.

    Compression is usually associated with speed and volume.

    Jon Harju

    October 10, 2005 at 2:06 pm #23117 Reply
    wes
    Participant
    • Topics - 0
    • Replies - 1
    • Total Posts - 1

    @spike wrote:

    Can anybody share any experience with doing compressed memory transfers? Quirks, pitfalls, etc.? The TWAIN 1.9 spec is pretty terse on this subject.

    Can anybody suggest an under 1000$US scanner that supports compressed memory transfers, for testing and development?

    How do you tell which values of ICAP_COMPRESSION apply to files, and which to memory transfers? I imagine that you set ICAP_XFERMECH to TWSX_MEMORY, and then query ICAP_COMPRESSION. But does that really work in practice?

    The only thing I’d add is that many scanners that say they support compressed memory transfers, is that the compression is usually done in their DS – which tends to be poorly implemented. this translates to slow throughput. the better scanners, or high end, support on board compression.

    regards,
    wes

    October 20, 2005 at 7:10 pm #23118 Reply
    Thierry
    Participant
    • Topics - 6
    • Replies - 54
    • Total Posts - 60

    @wes wrote:

    The only thing I’d add is that many scanners that say they support compressed memory transfers, is that the compression is usually done in their DS – which tends to be poorly implemented. this translates to slow throughput. the better scanners, or high end, support on board compression.

    regards,
    wes

    Right, and be careful too if you use JPEG compression that some will use an old-jpeg 😕 format and some other the normal (new) jpeg/exif format no real standard capability in the spec to specify that.

    June 29, 2007 at 9:18 am #23119 Reply
    PandeleFlorin
    Participant
    • Topics - 1
    • Replies - 2
    • Total Posts - 3

    👿
    Can anyone say exactly in clean clear english:
    1)How to get the total memory area PROPERLY ARRANGED , especially in “tiled” mode, FOR EACH KIND OF COMPRESSION?

    2)EXACTLY WHAT IS in that memory FOR EACH KIND OF COMPRESSION?
    It’s a file, a hbitmap, a dib, FOR GOD’s sake WHAT is in there?

    3)The exact precise algorithm that decompresses the image, FOR EACH KIND OF COMPRESSION (not only jpeg)?

  • Author
    Posts
Viewing 5 posts - 1 through 5 (of 5 total)
Reply To: How To: Compressed memory transfers
Your information:




Quick Links

Service Providers
TWAIN Support Forums
Membership
Contact Us
Privacy Policy

Newsletter Signup

TWAIN Working Group Family

TWAIN Working Group
TWAIN Direct®
TWAIN Resources
TWAIN Certified Drivers
PDF/raster

  • Facebook
  • GitHub
  • LinkedIn
  • Vimeo

Recent Topics

  • EPSON V600 TWAIN and WIA on Windows 10
  • When and how to use WaitForEvents command ?
  • Problem enumerating list of installed scanners in windows server 2012
  • Failed to create TWAIN progress! Error code is 1260.
  • To get the list of scanners from javascript client side (browser)
  • Quarterly Newsletter
  • TWAIN Working Group Membership
  • Logo Usage
  • TWAIN License
  • Contact Us
Privacy Policy • Privacy Tools • Copyright © 2021 TWAIN Working Group • by iHwy, LLC • Log in

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.