[sane-devel] backend Kodak i260 Image depth 48 bits stream. How is coded?
m. allan noah
kitno455 at gmail.com
Sat Aug 30 01:24:13 UTC 2008
On Fri, Aug 29, 2008 at 8:52 PM, Jose Guadalupe Osuna Chavez
<jose.chaves at sat.gob.mx> wrote:
>
> Another weird thing about bit depth is as a result of the read_imageheader command I get values of: 2400 width, 2176 length with a total image bytes of 7833600. That doesn't match with an image of 2400 x 2176 x 6 bytes per pixel.
sounds like it is compressed. i think the 48 bit value is a red
herring. the i1860 requires something like 96 bits in that spot, even
though it only scans in 24 bit color.
>
> I'm just have watch on inquiry result a label with aFrontCameraYCCOutput:1 and aFrontCameraYRGBOutput:0. YCC is a Kodak image format, isn't?
no, shortened form of YCbCr.
>
> Later I'll post an URL to a RAW image file scanned (without graphic format header).
sounds good. i might be able to figure it out.
allan
>
> Thanks a lot.
>
>
> Jose Osuna
>
> This is the result of inquiry command:
>
> CMD : Inquiry
> ARG : command/00 00 buffer/0x00118ba8 buflen/6 direction/0x1 mode:0
> SRB : flags/0x01 cdblen/6
> CDB : 12 00 00 00 06 00
> MGR : 0x1,SRB_STATUS_SUCCESS
> GET : 06 02 02 02 2a 00
> STS : srbsts/0x01 hres/0x00000000 pcbActualData/6
> Inquiry request (6-byte) succeeded...0
> INQ : [9,9,9] = 0 < > < >
>
> CMD : Inquiry
> ARG : command/00 00 buffer/0x00118ba8 buflen/47 direction/0x1 mode:0
> SRB : flags/0x01 cdblen/6
>
> CDB : 12 00 00 00 2f 00
> MGR : 0x1,SRB_STATUS_SUCCESS
>
> GET :
>
> 06 02 02 02 2a 00 00 30 4b 4f 44 41 4b 20 20 20
> 69 32 30 30 20 53 63 61 6e 6e 65 72 20 20 20 20
> 30 32 30 35 30 35 01 01 01 2c 00 01 80 79 e0
>
> STS : srbsts/0x01 hres/0x00000000 pcbActualData/47
> Inquiry request succeeded...0
> INQ : [9,9,9] = 0 <KODAK > <i200 Scanner >
> DMP : sPeriph_dev_type: 6
> DMP : sPeriph_qual: 0
> DMP : sDev_type_qual: 2
> DMP : sRmb: 0
> DMP : sAnsi_ver: 2
> DMP : sEcma_ver: 0
> DMP : sIso_ver: 0
> DMP : sResp_data_form: 2
> DMP : sAenc: 0
> DMP : sAdd_len: 42
> DMP : sSft_rst: 0
> DMP : sCmdque: 0
> DMP : sLinked: 0
> DMP : sSync: 1
> DMP : sWbus16: 1
> DMP : sWbus32: 0
> DMP : sReladr: 0
> DMP : sVend_id: <KODAK >
> DMP : sProd_id: <i200 Scanner >
> DMP : sProd_revis_lev: <0205>
> DMP : aBuildNumber: <05>
> DMP : aFrontCameraYCCOutput: 1
> DMP : aFrontCameraGrayscalet:0
> DMP : aFrontCameraColorPatch:0
> DMP : aFrontCameraYRGBOutput:0
> DMP : aFrontWhiteBackground: 0
> DMP : aFrontCameraOutput: 0
> DMP : aRearCameraYCCOutput: 1
> DMP : aRearCameraGrayscale: 0
> DMP : aRearCameraColorPatch: 0
> DMP : aRearCameraYRGBOutput: 0
> DMP : aRearWhiteBackground: 0
> DMP : aRearCameraOutput: 0
> DMP : aResolution: 300
> DMP : aPlatenType: 0
> DMP : aDaughterCardCount: 0
> DMP : aRear_side_printer: 0
> DMP : aDaughterCardCount: 0
> DMP : aMemoryType: 1
> DMP : aNullConfiguration: 0
> DMP : aScannerType: 0
> DMP : aLongDocument: 0
> DMP : aContinuousDocument: 0
> DMP : aSpecialDocument: 0
> DMP : aRearSimplex: 1
> DMP : aMaxImageLength: 31200
> ### MMX processor installed: 1
>>>> CDatabase::SetCurrentLong(SCSIADAPTERTARGET)
>
>
> -----Mensaje original-----
> De: m. allan noah [mailto:kitno455 at gmail.com]
> Enviado el: Jueves, 28 de Agosto de 2008 05:17 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?
>
> On Thu, Aug 28, 2008 at 8:02 PM, Jose Guadalupe Osuna Chavez
> <jose.chaves at sat.gob.mx> wrote:
>>
>> 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.
>
> you can get lots of info from their website...
>
> http://graphics.kodak.com/docimaging/US/en/Products/Document_Scanners/Departmental/i260_Scanner/index.htm
>
>>
>> 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.
>
> their site mentions something about 40bit color, they could be padding to 48?
>
> allan
>
>>
>>
>>
>> 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"
>>
>>
>
>
>
> --
> "The truth is an offense, but not a sin"
>
>
--
"The truth is an offense, but not a sin"
More information about the sane-devel
mailing list