[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