[sane-devel] backend Kodak i260 Image depth 48 bits stream. How is coded?

Jose Guadalupe Osuna Chavez jose.chaves at sat.gob.mx
Sat Aug 30 00:52:57 UTC 2008


	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.

	I'm just have watch on inquiry result a label with aFrontCameraYCCOutput:1 and aFrontCameraYRGBOutput:0. YCC is a Kodak image format, isn't?

	Later I'll post an URL to a RAW image file scanned (without graphic format header). 

	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"




More information about the sane-devel mailing list