Patent Publication Number: US-2003222985-A1

Title: Printing system, print control method therefor, and photo-direct printing apparatus

Description:
FIELD OF THE INVENTION  
       [0001] The present invention relates to a printing system having an image sensing apparatus such as a digital camera and a printing apparatus, a print control method for the printing system, and a photo-direct printing apparatus.  
       BACKGROUND OF THE INVENTION  
       [0002] In recent years, digital cameras (image sensing apparatuses) capable of photographing an image by a simple operation and converting the photographed image into digital image data have widely been used. To print an image photographed by this camera and use the print as a photograph, digital image data of the photographed image is temporarily input from the digital camera to a PC (computer), and undergoes image processing by the PC. Then, the processed data is output from the PC to a color printer, which prints the data.  
       [0003] To the contrary, there have been developed color print systems capable of directly transferring digital image data from a digital camera to a color printer and printing the data without the mediacy of any PC, and so-called photo-direct (PD) printers capable of directly mounting in a color printer a memory card which is mounted in a digital camera and stores a sensed image, and printing the photographed image stored in the memory card.  
       [0004] Especially when image data is to be directly transferred from a digital camera to a printer and printed, demands have arisen for the advent of a photo-direct printer capable of coping with digital cameras of various vendors because the specifications and operating methods of digital cameras are different between vendors.  
       [0005] The photo-direct printer which can cope with a digital camera of each vendor cannot understand function information supplied to a photo-direct printer camera, and may receive a print instruction using a function not supported by the printer apparatus. For example, the size or type of paper designated from the digital camera and the size or type of paper actually set in the printer may be different. In this case, image printing may fail.  
       SUMMARY OF THE INVENTION  
       [0006] The present invention has been made in consideration of the above situation, and has as its feature to provide a printing system capable of receiving and printing image data from an image sensing apparatus of each vendor by interface-independent image data transfer and printing instruction, a print control method for the printing system, and a photo-direct printing apparatus.  
       [0007] It is another feature of the present invention to provide a printing system in which, when print conditions designated from an image sensing apparatus are different from actual conditions of a printing apparatus, printing is done under the print conditions of the printing apparatus, thereby preventing degradation in print image caused by mismatching between the designated print conditions and the print conditions of the printing apparatus, a print control method for the printing system, and a photo-direct printing apparatus.  
       [0008] According to the present invention, there is provided a printing system in which an image sensing apparatus and a printing apparatus are directly connected via a general-purpose interface, and image data is transmitted from the image sensing apparatus to the printing apparatus and printed, the system comprising:  
       [0009] transmission means for transmitting at once function information of the printing apparatus from the printing apparatus to the image sensing apparatus after establishing a communication by an application installed in the printing apparatus and the image sensing apparatus;  
       [0010] information ignoring means for ignoring the information by the image sensing apparatus, in a case where the function information transmitted by the transmission means contains information which cannot be discriminated by the image sensing apparatus; and  
       [0011] control means for giving priority to a print function of the printing apparatus and performing print processing by the printing apparatus, in a case where the function information includes a print function which does not match a print function of the printing apparatus.  
       [0012] Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof. 
     
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
     [0013] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the descriptions, serve to explain the principle of the invention.  
     [0014]FIG. 1 depicts a schematic perspective view showing a PD printer according to an embodiment of the present invention;  
     [0015]FIG. 2 depicts a schematic view showing the operation panel of the PD printer according to the embodiment;  
     [0016]FIG. 3 is a block diagram showing the arrangement of the main part concerning control of the PD printer according to the embodiment;  
     [0017]FIG. 4 is a block diagram showing the ASIC arrangement of the PD printer according to the embodiment;  
     [0018]FIG. 5 depicts a view for explaining connection between the PD printer and a digital camera according to the embodiment;  
     [0019]FIG. 6 depicts a conceptual view for explaining the software arrangement of the PD printer and digital camera which support NCDP according to the embodiment;  
     [0020]FIG. 7 depicts a chart for explaining the outline of NCDP communication procedures according to the embodiment;  
     [0021]FIG. 8 depicts a table for explaining commands in NCDP according to the embodiment;  
     [0022]FIG. 9 depicts a chart for explaining print procedures by “basic procedures” in NCDP according to the embodiment;  
     [0023]FIG. 10 depicts a chart for explaining print procedures by “recommended procedures” in NCDP according to the embodiment;  
     [0024]FIG. 11 depicts a chart for explaining print procedures when an error occurs in the “recommended procedures” in NCDP according to the embodiment;  
     [0025]FIG. 12 depicts a view for explaining an example of Capability transmitted in NCDP according to the embodiment;  
     [0026]FIG. 13 is a flow chart for explaining the outline of NCDP communication procedures according to the embodiment;  
     [0027]FIG. 14 depicts a chart for explaining an example of realizing by using a PTP architecture an instruction (NCDPStart) which designates the start of NCDP procedures;  
     [0028]FIG. 15 depicts a chart for explaining an example of realizing, by using the PTP architecture, procedures (ProcedureStart) in which a shift instruction to each procedure is received from a camera in NCDP procedures;  
     [0029]FIG. 16 depicts a chart for explaining an example of realizing by using the PTP architecture an instruction (NCDPEnd) which designates the end of NCDP procedures;  
     [0030]FIG. 17 depicts a chart for explaining an example of realizing by using the PTP architecture an instruction (Capability) for transmitting Capability from the PD printer to the camera in NCDP procedures;  
     [0031]FIG. 18 depicts a chart for explaining an example of realizing by using the PTP architecture the procedures of an instruction (GetImage) in which the PD printer acquires an image file held by the camera in NCDP procedures;  
     [0032]FIG. 19 depicts a chart for explaining an example of realizing, by using the PTP architecture, the procedures of an instruction (StatusSend) for transmitting an error status from the PD printer to the camera in NCDP procedures;  
     [0033]FIG. 20 depicts a chart for explaining an example of realizing, by using the PTP architecture, the procedures of an instruction (PageEnd) for transmitting the end of printing one page from the PD printer to the camera in NCDP procedures;  
     [0034]FIG. 21 depicts a chart for explaining an example of realizing, by using the PTP architecture, procedures of issuing a print job end instruction (JobEnd) from the PD printer to the camera in NCDP procedures;  
     [0035]FIG. 22 depicts a chart for explaining an example of realizing, by using the PTP architecture, procedures of issuing a print instruction (JobStart) from the camera to the PD printer in NCDP procedures;  
     [0036]FIG. 23 depicts a chart for explaining an example of realizing, by using the PTP architecture, procedures of issuing a print abort instruction (JobAbort) from the camera to the PD printer in NCDP procedures;  
     [0037]FIG. 24 depicts a chart for explaining an example of realizing, by using the PTP architecture, procedures of issuing a print restart instruction (JobContinue) from the camera to the PD printer in NCDP procedures;  
     [0038]FIG. 25 depicts a chart for explaining data exchange by the “recommended procedures” between a DSC and the PD printer according to the embodiment;  
     [0039]FIG. 26 is a flow chart for explaining a print instruction by the “recommended procedures” in the DSC according to the embodiment; and  
     [0040]FIG. 27 is a flow chart for explaining print processing by the “recommended procedures” in the PD printer according to the embodiment. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
     [0041] A preferred embodiment of the present invention will be described in detail below with reference to the accompanying drawings.  
     [0042]FIG. 1 depicts a schematic perspective view showing a photo-direct printer apparatus (to be referred to as a PD printer hereinafter)  1000  according to the embodiment of the present invention. The PD printer  1000  has a general PC printer function of receiving data from a host computer (PC) and printing the data, and a function of directly reading and printing image data stored in a storage medium such as a memory card, or receiving image data from a digital camera and printing the data.  
     [0043] In FIG. 1, the main body which defines the casing of the PD printer  1000  according to the embodiment has casing members: a case M  1001 , upper case  1002 , access cover  1003 , and discharge tray  1004 . The lower case  1001  forms almost the lower half of the PD printer  1000 , whereas the upper case  1002  forms almost the upper half of the main body. A combination of these cases forms a hollow structure with a storage space where each mechanism (to be described later) is stored. The upper and front surfaces have openings. The discharge tray  1004  is rotatably held at one end by the lower case  1001 , and the opening in the front surface of the lower case  1001  is opened/closed by rotating the discharge tray  1004 . To execute print operation, the discharge tray  1004  is rotated toward the front side to open the opening. Print sheets can be discharged from the opening, and the discharged print sheets can be sequentially stacked. The discharge tray  1004  houses two auxiliary trays  1004   a  and  1004   b.  These trays are pulled out to enlarge/reduce the paper support area in three stages, as needed.  
     [0044] The access cover  1003  is rotatably held at one end by the upper case  1002  so as to open/close the opening formed in the upper surface. Opening the access cover  1003  enables exchanging a print head cartridge (not shown), ink tank (not shown), or the like stored in the main body. Although not shown, a projection formed on the back surface of the access cover  1003  rotates a cover opening/closing lever when the access cover  1003  is opened/closed. The lever rotation position is detected by a microswitch or the like, thereby detecting the open/closed state of the access cover  1003 .  
     [0045] A power key  1005  is provided on the upper surface of the upper case  1002 . An operation panel  1010  having a liquid crystal display  1006 , various key switches, and the like is arranged on the right side of the upper case  1002 . The structure of the operation panel  1010  will be described in detail with reference to FIG. 2. Reference numeral  1007  denotes an automatic feeder which automatically feeds print sheets into the apparatus main body; numeral  1008  denotes a paper interval selection lever for adjusting the interval between the print head and the print sheet; and numeral  1009  denotes a card slot into which an adapter capable of mounting a memory card is inserted. Image data stored in a memory card can be directly received and printed via the adapter. The memory card (PC) includes, e.g., a compact flash memory™, smart media™, and memory stick. Reference numeral  1011  denotes a viewer (liquid crystal display) which is detachable from the main body of the PD printer  1000  and is used to display an image of one frame, an index image, and the like when images stored in the PC card are searched for an image to be printed; and numeral  1012  denotes a USB terminal for connecting a digital camera (to be described later). A USB bus connector for connecting a personal computer (PC) is attached to the back surface of the PD apparatus  1000 .  
     [0046]FIG. 2 depicts a schematic view showing the operation panel  1010  of the PD printer  1000  according to the embodiment.  
     [0047] In FIG. 2, the liquid crystal display  1006  displays menu items for various settings of data on items printed on the right and left of the display  1006 . The displayed items are, for example, the first photograph number of a print range, a designated frame number (start frame designation/print frame designation), the last photograph number of a printed range (end), the number of prints (number of copies), the type of paper (print sheet) used for printing (paper type), setting of the number of photographs to be printed on one paper sheet (layout), designation of the print quality (quality), designation whether to print a photographing date (date printing), designation whether to correct and print a photograph (image correction), and display of the number of paper sheets necessary for printing (number of paper sheets). These items are selected or designated with cursor keys  2001 . Reference numeral  2002  denotes a mode key which allows switching the type of printing (index printing, printing of all frames, printing of one frame, or the like) every time the key  2002  is pressed. A corresponding one of LEDs  2003  is turned on accordingly. Reference numeral  2004  denotes a maintenance key for performing printer maintenance such as cleaning of the print head; numeral  2005  denotes a print start key which is pressed to designate the start of printing or establish maintenance setting; and numeral  2006  denotes a print stop key which is pressed to stop printing or designate to stop maintenance.  
     [0048] The arrangement of the main part concerning control of the PD printer  1000  according to the embodiment will be explained with reference to FIG. 3. In FIG. 3, the same reference numerals as in the foregoing drawings denote the same parts, and a description thereof will be omitted.  
     [0049] In FIG. 3, reference numeral  3000  denotes a controller (control board); numeral  3001  denotes an ASIC (application specific LSI) whose arrangement will be described in detail below with reference to the block diagram of FIG. 4; numeral  3002  denotes a DSP (Digital Signal Processor) which incorporates a CPU and performs various control processes to be described later, and image processes such as conversion from a luminance signal (RGB) to a density signal (CMYK), scaling, gamma conversion, and error diffusion; numeral  3003  denotes a memory having a program memory  3003   a  which stores the control program of the CPU of the DSP  3002 , a RAM area which stores a program in running, and a memory area functioning as a work memory which stores image data and the like; numeral  3004  denotes a printer engine which is an ink-jet printer type printer engine for printing a color image using a plurality of color inks in this embodiment; numeral  3005  denotes a USB connector serving as a port for connecting a digital camera (DSC)  3012 ; numeral  3006  denotes a connector for connecting the viewer  1011 ; and numeral  3008  denotes a USB bus hub which transmits data from a PC  3010  and outputs the data to the printer engine  3004  via a USB bus  3021  when the PD printer  1000  prints on the basis of image data from the PC  3010 . The connected PC  3010  can directly exchange data and signals with the printer engine  3004  and execute printing (functions as a general PC printer). Reference numeral  3009  denotes a power connector which receives from a power supply  3019  a DC voltage converted from a commercial AC voltage. The PC  3010  is a general personal computer. Reference numeral  3011  denotes a memory card (PC card) described above; and  3012 , the digital camera (DSC: Digital Still Camera).  
     [0050] Signal exchange between the controller  3000  and the printer engine  3004  is performed via the USB bus  3021  or an IEEE 1284 bus  3022 .  
     [0051]FIG. 4 is a block diagram showing the arrangement of the ASIC  3001 . Also in FIG. 4, the same reference numerals as in the foregoing drawings denote the same parts, and a description thereof will be omitted.  
     [0052] Reference numeral  4001  denotes a PC card interface which reads image data stored in the mounted PC card  3011  or writes data in the PC card  3011 ; and  4002 , an IEEE 1284 interface which exchanges data with the printer engine  3004 . The IEEE 1284 interface  4002  is a bus used to print image data stored in the digital camera  3012  or PC card  3011 . Reference numeral  4003  denotes a USB interface which exchanges data with the PC  3010 ; numeral  4004  denotes a USB host interface which exchanges data with the digital camera  3012 ; numeral  4005  denotes an operation panel interface which receives various operation signals from the operation panel  1010  or outputs display data to the display  1006 ; numeral  4006  denotes a viewer interface which controls display of image data on the viewer  1011 ; numeral  4007  denotes an interface which controls an interface between various switches and LEDs  4009 , and the like; numeral  4008  denotes a CPU interface which controls data exchange between these interfaces and the DSP  3002 ; and numeral  4010  denotes an internal bus (ASIC bus) which is connected to these units.  
     [0053] Operation with the above arrangement will be roughly described.  
     [0054] &lt;General PC Printer Mode&gt; 
     [0055] A general PC printer mode is a print mode in which an image is printed on the basis of print data sent from the PC  3010 .  
     [0056] In this mode, when data from the PC  3010  is input via a USB connector  1013  (FIG. 3), the data is directly sent to the printer engine  3004  via the USB hub  3008  and USB  3021 , and printing is done on the basis of the data from the PC  3010 .  
     [0057] &lt;Direct Print Mode From PC Card&gt; 
     [0058] When the PC card  3011  is mounted in or dismounted from the card slot  1009 , an interrupt occurs. The DSP  3002  can detect that the PC card  3011  has been mounted or dismounted (removed). If the PC card  3011  is mounted, compressed (e.g., JPEG-compressed) image data stored in the PC card  3011  is loaded and stored in the memory  3003 . If printing of the stored image data is designated using the operation panel  1010 , the compressed image data is decompressed and stored in the memory  3003 . Conversion from an RGB signal into a YMCK signal, gamma correction, error diffusion, and the like are executed to convert the stored data into print data printable by the printer engine  3004 . The print data is output to the printer engine  3004  via the IEEE 1284 interface  4002 , and printed.  
     [0059] &lt;Direct Print Mode From Camera&gt; 
     [0060]FIG. 5 depicts a view for explaining connection between the PD printer  1000  and the digital camera  3012  according to the embodiment.  
     [0061] In FIG. 5, a cable  5000  has a connector  5001  which is connected to the connector  1012  of the PD printer  1000 , and a connector  5002  which is connected to a connector  5003  of the digital camera  3012 . The digital camera  3012  can output via the connector  5003  image data which is saved in an internal memory. The digital camera  3012  can take various arrangements such as an arrangement having an internal memory as a storage means, and an arrangement having a slot for mounting a removable memory. The PD printer  1000  and digital camera  3012  are connected via the cable  5000  shown in FIG. 5. Image data from the digital camera  3012  can be directly printed by the PD printer  1000 .  
     [0062] When the digital camera  3012  is connected to the PD printer  1000 , as shown in FIG. 5, the display  1006  of the operation panel  1010  displays only a camera mark. Display and operation on the operation panel  1010  become invalid, and display on the viewer  1011  also becomes invalid. After that, only key operation to the digital camera  3012  and image display on the display (not shown) of the digital camera  3012  are valid. The user can designate printing by using the digital camera  3012 .  
     [0063] An object of the embodiment is to provide a PD printer capable of connecting digital cameras of a plurality of vendors and printing data. Protocols when the PD printer  1000  according to the embodiment and a digital camera are connected to perform printing will be explained in detail.  
     [0064] In the embodiment, communication control between the PD printer  1000  and the digital camera  3012  is performed using a general-purpose file and general-purpose format. This embodiment proposes NCDP (New Camera Direct Print).  
     [0065]FIG. 6 depicts a view showing an example of the NCDP arrangement.  
     [0066] In FIG. 6, reference numeral  600  denotes a USB interface; numeral  601  denotes a Bluetooth interface; numeral  602  denotes an application layer which is assembled in constructing an NCDP system; and numeral  603  denotes a layer which is used to execute existing protocols and interfaces and contains PTP (Picture Transfer Protocol), SCSI and Bluetooth BIPs (Basic Image Profiles), a USB interface, and the like. NCDP according to the embodiment assumes that an architecture such as a protocol layer is adopted and NCDP is supported as an application on the architecture. In this case, the PD printer  1000  and digital camera  3012  are respectively defined as a USB host and USB slave. The PD printer  1000  and digital camera  3012  have the same NCDP arrangement, as shown in FIG. 6.  
     [0067]FIG. 7 depicts a chart for explaining the flow of NCDP communication procedures between the PD printer  1000  and the digital camera (DSC)  3012  according to the embodiment.  
     [0068] If it is detected that the PD printer  1000  and DSC  3012  have been connected by the cable  5000 , as shown in FIG. 5, these devices can communicate with each other. Applications installed in these devices are executed to start shift to NCDP procedure  701 . Reference numeral  702  denotes an NCDP initial state in which whether these devices can execute NCDP is decided. If so, the flow shifts to NCDP procedure  701 . If the DSC  3012  does not support NCDP, no NCDP communication control is executed. If the DSC  3012  designates image data transfer/printing by “basic procedures” after shift to NCDP, as represented by  703 , the flow shifts to a simple print mode in which an image file is transferred from the DSC  3012  to the PD printer  1000  and printed. If the DSC  3012  designates image data transfer/printing by “recommended procedures”, as represented by  704 , various negotiations are done between the DSC  3012  and the PD printer  1000  to decide print conditions. Thereafter, the flow shifts to a more advanced print mode in which an image file is transferred from the DSC  3012  to the PD printer  1000  and printed. If the DSC  3012  designates “extended procedures”, as represented by  705 , a mode in which printing is done with an advanced layout function such as DPOF, XHTML-print, or SVG, and vender-unique specifications of each vendor is set. Note that detailed specifications by the “extended procedures” are defined by extended specifications unique to each DSC vendor, and will not be particularly explained. Image printing processes by the “basic procedures” and “recommended procedures” will be described with reference to FIGS.  9  to  11 .  
     [0069]FIG. 8 depicts a table for explaining commands which are defined to perform NCDP printing according to the embodiment.  
     [0070] In FIG. 8, a “corresponding mode” corresponds to the above-described “basic procedures”, “recommended procedures”, and “extended procedures” which are designated from the DSC  3012 . The “recommended procedures” can use all commands. The “basic procedures”, which correspond to the simple print mode, can use only shift to NCDP, end of NCDP, shift commands to the modes of the “basic procedures”, “recommended procedures”, and “extended procedures”, acquisition of image data from the camera  3012 , and a print instruction from the camera  3012 . In FIG. 8, the “extended procedures” can use only shift to NCDP, end of NCDP, and shift commands to the modes of the “basic procedures”, “recommended procedures”, and “extended procedures”. As described above, the “extended procedures” can employ other commands in accordance with the specifications of each vendor.  
     [0071] Image printing processes by the “basic procedures” and “recommended procedures” will be explained.  
     [0072]FIG. 9 depicts a chart for explaining NCDP communication procedures in image printing by the “basic procedures”. The “basic procedures” correspond to the simple print mode in which only one image file not including information of a print condition is transferred at every print instruction from the DSC  3012  to the PD printer  1000  and printed. Therefore, the PD printer decides the print condition including a color correction of an image and data conversion, and the like. Corresponding image formats are an RGB image of VGA size (640×480 pixels) and a JPEG image of VGA size (640×480 pixels) . The image file size is about 1 Mbyte or less. The DSC  3012  transmits an image file by an image format supported by the PD printer  1000 . In this case, no error handling is executed.  
     [0073] In  900 , the PD printer  1000  transmits to the DSC  3012  a command (NCDPStart) which designates shift to NCDP. If the DSC  3012  supports NCDP, it sends back “OK” ( 901 ). An example using PTP will be described in detail later as an example of performing NCDP confirmation procedures.  
     [0074] After the PD printer  1000  and DSC  3012  confirm that they both support NCDP, the PD printer  1000  transmits to the DSC  3012  an instruction (ProcedureStart) for shifting to the NCDP mode ( 902 ). If the DSC  3012  sends in  903  the “basic procedures” which correspond to the simple print mode, the print mode shifts to a mode by the “basic procedures”. In this case, if an image to be printed is selected and printing is designated by operation to the DSC  3012 , the DSC  3012  sends to the PD printer  1000  a command (JobStart) which designates the start of printing ( 904 ). In response to this, the PD printer  1000  shifts to the simple print mode, transmits a command (GetImage) to the DSC  3012 , and requests a JPEG image ( 905 ). The DSC  3012  transmits a JPEG image (ImageData) to the PD printer  1000  ( 906 ), and print processing in the PD printer  1000  starts. After printing of the designated image ends, the PD printer  1000  transmits to the DSC  3012  a command (JobEnd) representing the end of the print job ( 907 ). If the DSC  3012  sends back an acknowledgement (OK) in response to this command ( 908 ), print processing by the “basic procedures” ends. The “basic procedures” is performed on the assumption of simple exchanging image designation information so that if a print operation is decided to be executed based on the “basic procedures”, the print operation can be immediately started without exchanging Capability information as described later. However, whether to perform processing by the “basic procedures” may be determined in accordance with the capabilities of both the DSC and PD printer.  
     [0075]FIG. 10 depicts a chart for explaining NCDP communication procedures in image printing by the “recommended procedures”. The same reference numerals as in FIG. 9 denote the same procedures in FIG. 10, and a description thereof will be omitted. The “recommended procedures” can set a “more advanced print mode” which assumes negotiations between the PD printer  1000  and the DSC  3012 . Printing of a plurality of photographs and layout printing can be realized. Also, error handling can be executed.  
     [0076] In FIG. 10, after the PD printer  1000  and DSC  3012  confirm that they both support NCDP, similar to FIG. 9, the DSC  3012  designates the “recommended procedures” ( 910 ). Procedures by the “recommended procedures” are executed. As represented by  911 , the PD printer  1000  notifies the DSC  3012  of, as Capability information, all the functions of the PD printer  1000  and functions including paper setting. The Capability information is transmitted in a script format (text) to the DSC  3012 .  
     [0077]FIG. 12 shows an example of the Capability information.  
     [0078] As shown in FIG. 12, the Capability information contains the type and size of printable paper, the print quality, the image data format, the presence/absence of date printing, the presence/absence of file name printing, the layout, the presence/absence of image correction, and as an option the presence/absence of functions corresponding to the specifications of each camera vendor.  
     [0079] The script notation of Capability information facilitates porting to the architecture of another communication protocol, and standardization of exchange of function information. The script notation may comply with XML.  
     [0080] The user of the DSC  3012  which has received the Capability information determines which of the functions of the PD printer  1000  is used to perform printing. The user selects an image to be printed, and selects and decides the print conditions of the image from the functions of the PD printer  1000 . After the image to be printed, the print conditions, and the like are decided and the start of printing is designated, a print instruction (JobStart) is sent to the PD printer  1000 . The PD printer  1000  issues a command (GetImagexn) which requests image data ( 912 ). In response to this, the DSC  3012  transmits corresponding image data (ImageData) in an image format (Tiff, JPEG, RGB, or the like) receivable by the PD printer  1000  ( 913 ). A plurality of items of image data can be transmitted for printing of one image. This is because, when, for example, 2×2 layout printing is designated, image data of four images must be transmitted for one paper sheet. After printing of the designated image ends, the PD printer  1000  transmits to the DSC  3012  a command (JobEnd) representing the end of the print job ( 907 ). If the DSC  3012  sends back an acknowledgement (OK) in response to this command ( 908 ), processing shifts to image selection/print processing by the “recommended procedures”.  
     [0081]FIG. 11 depicts a chart for explaining communication procedures when an error occurs in the PD printer  1000  in NCDP communication procedures in image printing by the “recommended procedures”. The same reference numerals as in FIG. 10 denote the same procedures, and a description thereof will be omitted.  
     [0082] In this example, a paper feed error occurs in the PD printer  1000  during print processing by the “recommended procedures”. In  914 , the PD printer  1000  transmits to the DSC  3012  status information (Status) representing the paper feed error. The DSC  3012  transmits to the PD printer  1000  a command representing whether to continue (JobContinue) or abort (JobAbort) print processing on the basis of the decision by the user of the DSC  3012 . If “abort” is designated, the PD printer  1000  aborts print processing, transmits a print job end notification (JobEnd), and ends printing. If “continue” is designated, the PD printer  1000  waits for recovery of the paper feed error, and then continues print processing.  
     [0083] The above-described processing procedures will be explained with reference to the flow chart of FIG. 13.  
     [0084]FIG. 13 is a flow chart for explaining the processing procedures shown in FIG. 7.  
     [0085] In step S 1 , communication is established between the digital camera (DSC)  3012  and the PD printer  1000  ( 700 ). In step S 2 , whether these devices support NCDP is determined, and if YES, the processing shift to NCDP. The flow advances to step S 3  to receive a procedure instruction from the DSC  3012 , and the processing shifts to the designated procedure. If the “basic procedures” are designated, the flow advances from step S 4  to step S 5  to execute print processing by the “basic procedures”. If the “recommended procedures” are designated, the flow advances from step S 6  to step S 7  to execute print processing by the “recommended procedures”. If the “extended procedures” are designated, the flow advances from step S 8  to step S 9  to execute print processing by “extended procedures” corresponding to each vendor. Otherwise, the flow advances to step S 10  to execute printing in a mode unique to the PD printer  1000  and DSC  3012 .  
     [0086] An example (PTP wrapper) of realizing various NCDP commands (FIG. 8) described above by using general-purpose PTP will be explained. The embodiment will describe NCDP using PTP, but the present invention is not limited to this. For example, a direct print service API may be supported by another interface and another class.  
     [0087] [NCDPStart] 
     [0088]FIG. 14 depicts a chart for explaining an example of realizing by using a PTP architecture an instruction (NCDPStart) which designates the start of NCDP procedures.  
     [0089] After the PD printer  1000  and DSC  3012  are physically connected, the PD printer  1000  transmits GetDeviceInfo to the DSC  3012  in  1400 , and requests, of the DSC  3012 , information on an object held by the DSC  3012 . In response to this, the DSC  3012  transmits, to the PD printer  1000  by DeviceInfoDataset, information on the object held by the DSC  3012 . By OpenSession in  1402 , the PD printer  1000  assigns the DSC  3012  as a resource, if necessary assigns a handle to a data object, and issues a start request for procedures of performing special initialization. If the DSC  3012  sends back an acknowledge (OK), PTP communication starts. In  1403 , the PD printer  1000  transmits GetObjectHandles to the DSC  3012 , and requests all script handles (Storage ID: FFFFFF, Object Type: Script). In  1404 , the DSC  3012  sends back a list of all handles (ObjectHandleArray) held by the DSC  3012 . In  1405  and  1406 , the ith object handle information is acquired from the PD printer  1000 . If this object contains a keyword (e.g., password “Marco”) representing the identification of the DSC  3012 , the PD printer  1000  instructs in  1407  the DSC  3012  to transmit object information (SendObjectInfo). If the PD printer  1000  receives an acknowledge (OK), it transmits the object information to the DSC  3012  by SendObject. The object contains, e.g., “polo” as a response keyword to the first keyword.  
     [0090] In this manner, the PD printer  1000  and DSC  3012  can recognize each other as connected partners. After that, the processing can shift to NCDP procedures ( 701  in FIG. 7). Transport layers capable of exchanging files can reliably exchange keywords. That is, keywords can be exchanged using the PTP architecture without adding an NCDP-unique command and the like in the embodiment. The keyword is not limited to the above example, and the DSC  3012  and PD printer  1000  may use the same keyword. To shorten the time taken for negotiations by the keyword, the keyword may be set at the start of a script handle. This can shorten the time taken to confirm partner devices.  
     [0091] [ProcedureStart] 
     [0092]FIG. 15 depicts a chart for explaining an example in which an instruction which designates shift procedures to the NCDP print mode is received from the DSC  3012 , and an instruction (ProcedureStart) ( 902 ) from the PD printer  1000  to the DSC  3012  for shifting to the mode is realized by using the PTP architecture.  
     [0093] In  1501 , the PD printer  1000  notifies the DSC  3012  by SendObjectInfo of object information to be transmitted, in order to notify the DSC  3012  of the procedures: “basic procedures”, “recommended procedures”, and “extended procedures” which are supported by the PD printer  1000 . If the DSC  3012  sends an acknowledge (OK), the PD printer  1000  notifies the DSC  3012  by SendObject in  1502  of transmission of an object. In  1503 , the PD printer  1000  transmits, by ObjectData, information on the procedures supported by the PD printer  1000 . In  1504 , the DSC  3012  notifies the PD printer  1000  that GetObject operation is to be activated (shift to a push mode) (RequestObjectTransfer). If the PD printer  1000  notifies the DSC  3012  in  1505  that the PD printer  1000  is to receive information on object information (GetObjectInfo), the DSC  3012  sends back the information to the PD printer  1000  by ObjectInfoDataset in  1506 . If the PD printer  1000  designates and requests the object information in  1507 , the DSC  3012  notifies the PD printer  1000  by ObjectDataset of procedures (“basic”, “recommended”, “extended”, or the like) used by the DSC  3012  ( 1508 ).  
     [0094] In this fashion, the DSC  3012  can instruct the PD printer  1000  of the print mode of an image.  
     [0095] [NCDPEnd] 
     [0096]FIG. 16 depicts a chart for explaining an example of realizing by using the PTP architecture an instruction (NCDPEnd) for ending communication control procedures in NCDP according to the embodiment.  
     [0097] In these procedures, the PD printer  1000  notifies the DSC  3012  in  1600  of object information to be transmitted (SendObjectInfo). The PD printer  1000  notifies the DSC  3012  by SendObject of transmission of the object information, and notifies the DSC  3012  by ObjectData of exit from the NCDP mode. If the PD printer  1000  receives an acknowledge (OK), it transmits CloseSession in  1601 , and ends communication. As a result, the NCDP communication procedures end.  
     [0098] [Capability] 
     [0099]FIG. 17 depicts a chart for explaining an example of realizing, by using the PTP architecture, communication procedures by a Capability instruction which notifies the DSC  3012  of the function of the PD printer  1000  in NCDP according to the embodiment.  
     [0100] In these procedures, the PD printer  1000  notifies the DSC  3012  in  1700  by SendObjectInfo of object information to be transmitted. In  1701 , the PD printer  1000  notifies the DSC  3012  by SendObject of transmission of the object information, and notifies the DSC  3012  by ObjectData of the functions of the PD printer  1000  in the script format (FIG. 12).  
     [0101] [GetImage] 
     [0102]FIG. 18 depicts a chart for explaining an example of realizing, by using the PTP architecture, communication procedures (GetImage) in which the PD printer  1000  acquires image data (JPEG image) held by the DSC  3012  in NCDP according to the embodiment.  
     [0103] In  1800 , the PD printer  1000  requests information on an object held by the DSC  3012 . In  1801 , the DSC  3012  sends information (ObjectInfoDataset) on the object to the PD printer  1000 . In  1802 , the PD printer  1000  designates the object, and issues an acquisition request (GetObject). In  1803 , the DSC  3012  transmits the requested image file (ObjectDataset) to the PD printer  1000 . As a result, the PD printer  1000  can acquire a desired image file from the DSC  3012 .  
     [0104] [StatusSend] 
     [0105]FIG. 19 depicts a chart for explaining an example of realizing, by using the PTP architecture, communication procedures (StatusSend) in which the PD printer  1000  notifies the DSC  3012  of an error status in NCDP according to the embodiment.  
     [0106] In  1900 , the PD printer  1000  notifies the DSC  3012  by SendObjectInfo of object information to be transmitted. In  1901 , the PD printer  1000  transmits an information set (ObjectInfoDataset) on the object information to the DSC  3012 . In response to an acknowledge (OK) from the DSC  3012 , the PD printer  1000  transmits status information such as an error in the PD printer  1000  by SendObject and ObjectDataset. Data which is transmitted from the PD printer  1000  to the DSC  3012  is text data (script).  
     [0107] [PageEnd] 
     [0108]FIG. 20 depicts a chart for explaining an example of realizing, by using the PTP architecture, communication procedures (PageEnd) in which the PD printer  1000  notifies the DSC  3012  of the end of print processing of one page in NCDP according to the embodiment.  
     [0109] [JobEnd] 
     [0110]FIG. 21 depicts a chart for explaining an example of realizing, by using the PTP architecture, communication procedures (JobEnd) in which the PD printer  1000  notifies the DSC  3012  of the end of a print job in NCDP according to the embodiment.  
     [0111] In FIGS. 20 and 21, after procedures  1900  and  1901  in FIG. 19 are executed, the PD printer  1000  notifies the DSC  3012  in  1910  of FIG. 20 of the end of print processing of one page. In  1911  of FIG. 21, the PD printer  1000  notifies the DSC  3012  of the end of the print job. Data (page end and job end) which are transmitted from the PD printer  1000  to the DSC  3012  are text data (script).  
     [0112] [JobStart] 
     [0113]FIG. 22 depicts a chart for explaining an example of realizing, by using the PTP architecture, communication procedures (JobStart) in which the PD printer  1000  notifies the DSC  3012  of the start of a print job in NCDP according to the embodiment.  
     [0114] In  2200 , the DSC  3012  sends RequestObjectTransfer to the PD printer  1000 , and prompts the PD printer  1000  to issue a GetObject command. If the PD printer  1000  issues GetObjectInfo in  2201 , the DSC  3012  transmits information on object information to be transmitted. If the PD printer  1000  requests the object information (GetObject:  2203 ), the DSC  3012  transmits ObjectDataset in  2204 , and issues a print instruction to the PD printer  1000 . Data (print start instruction) which is transmitted from the DSC  3012  to the PD printer  1000  is text data (script).  
     [0115] [JobAbort] 
     [0116]FIG. 23 depicts a chart for explaining an example of realizing, by using the PTP architecture, communication procedures (JobAbort) in which the DSC  3012  issues a print abort instruction to the PD printer  1000  in NCDP according to the embodiment.  
     [0117] [JobContinue] 
     [0118]FIG. 24 depicts a chart for explaining an example of realizing, by using the PTP architecture, communication procedures (JobContinue) in which the DSC  3012  issues a print restart instruction to the PD printer  1000  in NCDP according to the embodiment.  
     [0119] In FIGS. 23 and 24, after procedures  2200  to  2203  in FIG. 22 are executed, the DSC  3012  issues a print abort instruction to the PD printer  1000  in  2301  of FIG. 23. In  2401  of FIG. 24, the DSC  3012  notifies the PD printer  1000  of a print restart instruction. Data (print abort instruction and print restart instruction) which are transmitted from the DSC  3012  to the PD printer  1000  are text data (script).  
     [0120] [Capability Discretion] 
     [0121] Communication procedures between the PD printer  1000  and the DSC  3012  and processes in the PD printer  1000  and the DSC  3012  which are features according to the embodiment will be explained.  
     [0122] The embodiment assumes that the DSC  3012  connected to the PD printer  1000  is an unspecific digital camera manufactured by each vendor. Even if, for example, all pieces of information of the PD printer  1000  are transmitted as Capability from the PD printer  1000  to the DSC  3012 , the DSC  3012  may not understand all or some of the Capability contents. In this case, a print job file which describes print conditions not intended by the PD printer  1000  is sent from the DSC  3012 . If printing is done under the print conditions designated by the print job file, the printed image may have no value. An object of the embodiment is to solve a problem generated in this situation.  
     [0123]FIG. 25 depicts a chart for explaining the procedures of Capability exchange in the “recommended procedures” shown in FIG. 11.  
     [0124] In (a) of FIG. 25, the PD printer  1000  transmits Capability by the script notation to the DSC  3012 , as described above. The DSC  3012  interprets Capability, and if there is an item which cannot be understood, ignores the item. In (b), the user of the DSC  3012  uses the UI of the DSC  3012  to designate an image file to be printed and print conditions (paper type, paper size, image quality, and the like). A file of a print job format which designates a print job is created. In (c), the DSC  3012  transmits to the PD printer  1000  the print job file which designates the print job. The PD printer  1000  which has received the file analyzes the contents described in the print job file, and prints an image file received in (d) under the print conditions designated by the print job file. At the end of printing, the PD printer  1000  notifies the DSC  3012  of the end of the print job in (e).  
     [0125] When the paper size set in the PD printer  1000  is “L size”, but “A4 size” is designated as the Capability paper size of the print job file received from the DSC  3012 , the PD printer  1000  determines the Capability description with discretion. That is, if “A4-size” image data is directly printed on an “L-size” paper sheet, only part of the image can be printed. To prevent this, the PD printer  1000  ignores the paper size item described in Capability from the DSC  3012 , gives priority to the size (in this case “L size”) of a paper sheet actually set in the PD printer  1000 , and prints the image. The PD printer  1000  reduces the “A4-size” image data to “L size”, and prints the data on a set “L-size” paper sheet.  
     [0126] This also applies to, e.g., the paper type (plain paper, special-purpose paper, or the like) subjected to printing. When a paper sheet of type designated by capability from the DSC  3012  does not exist, priority is given to the type of an actually set paper sheet in the PD printer. Image processing complying with the type of the paper sheet can be done to print an optimal image in accordance with the type of the paper sheet.  
     [0127]FIG. 26 is a flow chart for explaining processing in the DSC  3012  by the processing procedures of the “recommended procedures” described above.  
     [0128] If the DSC  3012  receives Capability from the PD printer  1000  in step S 21 , the flow advances to step S 22  to analyze Capability. If there is an item which cannot be understood by the DSC  3012 , the DSC  3012  ignores the item, and advances to step S 23  to display a print instruction window (UI) on a display of the DSC  3012 . In step S 24 , the user inputs a print instruction by using the UI window. If the print instruction is input, the process advances to step S 25  to create a print job file which describes an image file to be printed and various print conditions that are set by using the UI. In step S 26 , the DSC  3012  transmits the print job file to the PD printer  1000 . In step S 27 , the DSC  3012  transmits to the PD printer  1000  the image file described in the print job file.  
     [0129]FIG. 27 is a flow chart for explaining processing in the PD printer  1000  by the processing procedures of the “recommended procedures” described above.  
     [0130] In step S 31 , the PD printer  1000  receives the print job file which is transmitted from the DSC  3012  in steps S 26  and S 27  of FIG. 26. Then the flow advances to step S 32  to analyze the print job file. As a result, the PD printer  1000  specifies print conditions and an image file to be printed. The process advances to step S 33  to receive the designated image file. Then the flow advances to step S 34  to determine whether the print job file contains an item which cannot be understood. If YES in step S 34 , the flow advances to step S 35  to ignore the item. If NO in step S 34  or after the item is ignored in step S 35 , the flow advances to step S 36  to determine whether the print conditions described in the print job file are different from the current print conditions in the PD printer  1000 . For example, whether the paper size or paper type designated in the print job file is different from the size or type of a paper sheet actually set in the PD printer  1000  is determined, as described above. If YES in step S 36 , the flow advances to step S 37  to ignore the print conditions designated by the print job file and give priority to print conditions printable by the PD printer  1000 . In step S 38 , the PD printer  1000  executes printing designated by the print job file on the basis of the print conditions.  
     [0131] As described above, an image from the DSC  3012  can be printed under print conditions determined to be optimal even between the PD printer  1000  and the DSC  3012  which do not have perfect compatibility.  
     [0132] When print conditions sent from the digital camera to the printer contains a condition which cannot be coped with by the printer, and priority is given to the printer settings or printer function, the camera may be notified of a message to this effect, or information for outputting a warning may be sent. Alternatively, a warning may be displayed on the display of the printer, or an alarm sound may be output from the printer.  
     [0133] Alternatively, information representing that printing has been done by giving priority to the printer settings may be printed together with a printed image or on a sheet next to the image.  
     [0134] When a warning or the like is output, which print condition does not comply with the printer settings or printer ability is preferably represented for better user convenience.  
     [0135] The present invention is preferably adapted to a case where an image supply apparatus or an image sensing apparatus in which a print condition can be set using such as DPOF™ (Digital Print Order Format) under not connecting to a printer, is used. The image supply apparatus or the image sensing apparatus can set a print condition independent from the ability of a printer. When the image supply apparatus or the image sensing apparatus is connected to a printer, the image supply apparatus or the image sensing apparatus requests the printer to print an image in accordance with the DPOF stored in the apparatus. In this case, if the printer is designated to print an image based on a print function of the printer, the printer can inform the image supply apparatus or the image sensing apparatus of a warning indicating unmatched print condition as described above. Further, items of print condition in the DPOF being unmatched with the printer function can be displayed or stored in related to the print condition (DPOF) in a memory. Thereby, an error of unmatched print condition can be recognized later.  
     [0136] As described above, in a case where a print mode in which a print operation without exchanging capability information can be performed is provided, an optimum print condition is not always sent to a printer from an image supply apparatus, therefore the present invention is more effective in such case.  
     [0137] The present invention may be applied to a system including a plurality of devices (e.g., a host computer, interface device, reader, and printer) or an apparatus (e.g., a copying machine or facsimile apparatus) formed from a single device.  
     [0138] The object of the present invention is also achieved when a storage medium (or recording medium) which stores software program codes for realizing the functions of the above-described embodiment (processes executed on the camera side and various print processes executed on the printer side) is supplied to a system or apparatus, and the computer (or the CPU or MPU) of the system or apparatus reads out and executes the program codes stored in the storage medium. In this case, the program codes read out from the storage medium realize the functions of the above-described embodiment, and the storage medium which stores the program codes constitutes the present invention. The functions of the above-described embodiment are realized when the computer executes the readout program codes. Also, the functions of the above-described embodiment are realized when an OS (Operating System) or the like running on the computer performs part or all of actual processing on the basis of the instructions of the program codes.  
     [0139] The functions of the above-described embodiment are also realized when the program codes read out from the storage medium are written in the memory of a function expansion card inserted into the computer or the memory of a function expansion unit connected to the computer, and the CPU of the function expansion card or function expansion unit performs part or all of actual processing on the basis of the instructions of the program codes.  
     [0140] As has been described above, according to the above-described embodiment, a PD printer and DSC are respectively set as a host and slave. Before print operation, Capability information of the PD printer is transmitted to the DSC. The DSC decides an optimal print mode on the basis of the Capability information.  
     [0141] The Capability information is transmitted as a script. This facilitates porting to another communication protocol and standardization.  
     [0142] Communication procedures between devices use a general-purpose file and general-purpose format. An upper layer defines the communication procedure layer of an application according to the embodiment. Communication procedures independent of various interface specifications can be defined.  
     [0143] The present invention is not limited to the above embodiments and various changes and modifications can be made within the spirit and scope of the present invention. Therefore, to apprise the public of the scope of the present invention, the following claims are made.