[sane-devel] backend Kodak i260 Image depth 48 bits stream. How is coded?
Jose Guadalupe Osuna Chavez
jose.chaves at sat.gob.mx
Fri Aug 29 00:02:46 UTC 2008
Allan:
I didn't find anything about if multi-stream is supported by the scanner. I don't have a manual or something like that. I'm studying the information generated by kds logs on windows and there aren't any multi-stream options.
The CompressionType byte on SetWindow command is set to 0, I think that means uncompressed.
I'd find a couple of bytes with names like scan_method and scan_mode on SetConfig command. Normally with values of 01 and 02, I'll change it to another else, and will check what could happen.
Curiously on Windows don't care what the image settings are; always scan to 48 bpp and might be converting the image to target afterwards.
Thank you for you help, I'll post any result..
Jose Osuna
P.S. This is the SetConfig settings on windows and I did emulate on Linux.
wr_cwirebase 2334 183 S5 CDB : 28 00 80 00 SC 00 00 59 00
wr_cwirescsiscan 874 31 S5 MGR : 0x1,SRB_STATUS_SUCCESS
wr_cwirebase 2503 183 S5 GET :
00 00 00 59 01 02 08 00 00 00 00 00 01 33 00 00
00 00 00 00 01 00 00 00 00 00 09 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00
wr_cwirebase 2532 183 S5 STS : srbsts/0x01 hres/0x00000000 pcbActualData/89
kdsprot 10564 183 S5 DMP : sizeof_AlienConfig: 89
kdsprot 10565 183 S5 DMP : scan_method: 1
kdsprot 10566 183 S5 DMP : continuous_doc_mode: 0
kdsprot 10567 183 S5 DMP : special_doc_mode: 0
kdsprot 10568 183 S5 DMP : scan_mode: 2
kdsprot 10569 183 S5 DMP : transport_timeout: 8
kdsprot 10570 183 S5 DMP : ultrasonic_detection_mode: 0
kdsprot 10571 183 S5 DMP : length_detection_length: 0
kdsprot 10572 183 S5 DMP : multipage_response: 0
kdsprot 10573 183 S5 DMP : page_on_demand_count: 1
kdsprot 10574 183 S5 DMP : platen_color_table_id: 3
kdsprot 10575 183 S5 DMP : platen_window_zone_id: 3
kdsprot 10576 183 S5 DMP : dp1_position: 0
kdsprot 10577 183 S5 DMP : dp1_font: 0
kdsprot 10578 183 S5 DMP : dp1_orientation: 0
kdsprot 10579 183 S5 DMP : dp1_date_delimiter: 1
kdsprot 10580 183 S5 DMP : dp1_count: 0
kdsprot 10581 183 S5 DMP : dp1_count_format: 0
kdsprot 10582 183 S5 DMP : dp1_count_width: 9
kdsprot 10585 183 S5 DMP : dp1_message1: <>
kdsprot 10588 183 S5 DMP : dp1_writesequence: <>
kdsprot 10589 183 S5 DMP : patch_type: 0
kdsprot 10590 183 S5 DMP : rear_output_switch: 0
kdsprot 10591 183 S5 DMP : front_output_switch: 0
kdsprot 6836 183 S5 >>> CDev::DeviceImageOrder(0)
-----Mensaje original-----
De: m. allan noah [mailto:kitno455 at gmail.com]
Enviado el: Jueves, 28 de Agosto de 2008 01:14 p.m.
Para: Jose Guadalupe Osuna Chavez
CC: sane-devel at lists.alioth.debian.org
Asunto: Re: [sane-devel] backend Kodak i260 Image depth 48 bits stream. How is coded?
two options- 1. does the scanner have multi-stream support? if so, it
might be scanning in duplex with all 4 heads at the same time.
2. i have a backend for the i1860 in development. it sets weird values
in the bit depth field- depending on if it is in compression mode or
not.
allan
2008/8/28 Jose Guadalupe Osuna Chavez <jose.chaves at sat.gob.mx>:
> Hi:
>
>
>
> I'm making a backend for a i260 kodak scanner on Linux, but now I'm
> stuck trying to decode the image's stream.
>
>
>
> As a result of analyzing the driver's log on window, all appears to show
> that the scanner only works with depth of 48 bits per pixel. Every time that
> I'd send a SetWindow command with another pixel depth, an error occurs.
>
>
>
> The SetWindow command on window's log is the next:
>
>
>
> 01904 104543281 kdsprot 7703 183 S5 CMD : SetWindow
>
> 01905 104543281 kdsprot 7711 183 S5 DMP :
> aWindowDescLength: 0
>
> 01906 104543281 kdsprot 7712 183 S5 DMP :
> aWindowDataLength: 46
>
> 01907 104543281 kdsprot 7713 183 S5 DMP :
> aWindowId: 3
>
> 01908 104543281 kdsprot 7714 183 S5 DMP :
> aX_resolution: 200
>
> 01909 104543281 kdsprot 7715 183 S5 DMP :
> aY_resolution: 200
>
> 01910 104543281 kdsprot 7716 183 S5 DMP :
> aUpperLeft_X: 0
>
> 01911 104543281 kdsprot 7717 183 S5 DMP :
> aUpperLeft_Y: 0
>
> 01912 104543281 kdsprot 7718 183 S5 DMP :
> aWidth: 14400
>
> 01913 104543281 kdsprot 7719 183 S5 DMP :
> aLength: 20400
>
> 01914 104543281 kdsprot 7720 183 S5 DMP :
> aBrightness: 0
>
> 01915 104543281 kdsprot 7721 183 S5 DMP :
> aThreshold: 0
>
> 01916 104543281 kdsprot 7722 183 S5 DMP :
> aContrast: 0
>
> 01917 104543281 kdsprot 7723 183 S5 DMP :
> aImageComposition: 5
>
> 01918 104543281 kdsprot 7724 183 S5 DMP :
> aBitsPerPixel: 48
>
> 01919 104543281 kdsprot 7725 183 S5 DMP :
> aHalftonePattern: 0
>
> 01920 104543281 kdsprot 7726 183 S5 DMP :
> aPaddingType: 0
>
> 01921 104543281 kdsprot 7727 183 S5 DMP :
> aRif: 0
>
> 01922 104543281 kdsprot 7728 183 S5 DMP :
> aBitOrdering: 1
>
> 01923 104543281 kdsprot 7729 183 S5 DMP :
> aCompressionType: 0
>
> 01924 104543281 kdsprot 7730 183 S5 DMP :
> aCompressionArgument: 0
>
> 01925 104543281 kdsprot 7731 183 S5 DMP :
> aImageOverscan: 0
>
> 01926 104543281 kdsprot 7732 183 S5 DMP :
> aColorDropoutColor: 0
>
> 01927 104543281 kdsprot 7733 183 S5 DMP :
> aColorDropoutBackground: 245
>
> 01928 104543281 kdsprot 7734 183 S5 DMP :
> aColorDropoutThreshold: 175
>
> 01929 104543281 kdsprot 7735 183 S5 DMP :
> aImageMagnificationFactor: 10
>
> 01930 104543281 kdsprot 1108 183 S5 >>>
> KDSPROT::Escape(0x2a24,10891898,54,0)
>
> 01931 104543281 wr_cwirebase 2307 183 S5 ARG : command/2a 24
> buffer/0x10891898 buflen/54 direction/0x0 mode:1
>
> 01932 104543281 wr_cwirebase 2314 183 S5 SRB : flags/0x00
> cdblen/10
>
>
>
> 01933 104543281 wr_cwirebase 2374 183 S5 CDB : 24 00 00 00 00
> 00 00 00 36 00
>
>
>
> 01934 104543281 wr_cwirebase 2437 183 S5 PUT :
>
> 00 00 00 00 00 00 00 2e 03 00 00 c8 00 c8 00 00
>
> 00 00 00 00 00 00 00 00 38 40 00 00 4f b0 00 00
>
> 00 05 30 00 00 00 00 01 00 00 00 00 00 00 00 00
>
> 00 00 00 f5 af 0a
>
>
>
>
>
> The scanner works fine, but after the ReadImage command I don't
> understand the data stream of 48 bits. I'll like to convert this image to 8
> bits grayscale and Bitonal after.
>
>
>
> Does anybody have any information about this image stream? Thank you
>
>
>
> The stream show two bytes with 80 80 every four, just like this on
> linux.
>
>
>
> [kodak] sane_read: start
>
> [kodak] read_from_scanner: start
>
> [kodak] read_from_scanner: to:7920000 rx:0 re:7920000 bu:32766 pa:32766
>
> [kodak] do_cmd: start
>
> [kodak] cmd: writing 10 bytes
>
> [kodak] cmd: >>
>
> [kodak] 000: 28 00 00 00 00 00 00 7f fe 00 /* ReadImage
> command */
>
> [kodak] in: reading 32766 bytes
>
> [kodak] in: <<
>
> [kodak] 000: 09 09 80 80 0b 0a 80 80 07 07 80 80 08 09 80 80 /* Image
> stream */
>
> [kodak] 010: 09 09 80 80 0a 0b 80 80 0a 09 80 80 09 09 80 80
>
> [kodak] 020: 0b 0a 80 80 08 09 80 80 0b 0c 80 80 0a 09 80 80
>
> [kodak] 030: 0b 0a 80 80 09 0a 80 80 0b 0b 80 80 0b 09 80 80
>
> [kodak] 040: 08 07 80 80 08 0a 80 80 0c 0b 80 80 09 08 80 80
>
> [kodak] 050: 08 07 80 80 0a 0b 80 80 0b 0b 80 80 09 09 80 80
>
> [kodak] 060: 0b 0a 80 80 09 08 80 80 09 09 80 80 0a 0b 80 80
>
> ......
>
>
>
> Jose Osuna
>
> Coordinación Técnica
>
> CRDC Cd. Obregon
>
> Vangent de Mexico, S.A. de C.V.
>
>
>
> --
> sane-devel mailing list: sane-devel at lists.alioth.debian.org
> http://lists.alioth.debian.org/mailman/listinfo/sane-devel
> Unsubscribe: Send mail with subject "unsubscribe your_password"
> to sane-devel-request at lists.alioth.debian.org
>
--
"The truth is an offense, but not a sin"
More information about the sane-devel
mailing list