Abstract:
It is one object of the present invention to provide a communication control terminal apparatus that can employ one CPU to control two or more communications having the same or different protocols to be executed, at the same time without adversely affecting each other, and a storage medium on which a program therefor is stored.  
     There is provided a communication control terminal apparatus comprises: a storage unit for storing information by using predetermined code; a codec unit for coding/decoding the information; and plural communication control units for transmitting the information, wherein communication code obtained by the codec unit through conversion is transmitted via the communication control unit, and wherein the execution time for the codec unit is changed in accordance with a communication procedure performed by the communication control unit.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    1. Field of the Invention  
           [0002]    The present invention relates to a communication control terminal apparatus for converting into code information that is to be communicated and for communicate the code, and a storage medium therefor.  
           [0003]    2. Related Background Art  
           [0004]    In the current information infrastructural society, even on the office machine market, it is natural that one composite machine having multiple functions is employed instead of conventional, standalone machines.  
           [0005]    Especially, as for information communication functions, a variety of communication functions are provided for a single machine, including a function for facsimile communication using a telephone line or an ISDN line, a function for execute E-mail communication across a network and a printer/scanner function.  
           [0006]    For example, one of the current composite digital machines can transmit documents received by E-mail to PCs, or to G3 facsimile machines or G4 facsimile machines at the same time by means of multi-address calling.  
           [0007]    [0007]FIG. 9 is a flowchart showing a conventional CODEC operation.  
           [0008]    When two or more communications are performed at the same time, however, the load imposed on a CPU is accordingly increased and the processing time is extended. Codec processing is an especially heavy load, and depending on the case, data can not be coded quickly.  
           [0009]    When two or more communications are performed at the same time, and excessive time is required for the codec process for one communication, the other processes are adversely affected. Especially, when facsimile communication is employed, if predetermined code is not generated and transmitted onto a line within a period specified in the Recommendation, the connection is disconnected and normal communication can not be implemented.  
           [0010]    Therefore, an apparatus for adjusting the decoding process units (the number of lines) to enable a multiplexing process is disclosed in Japanese Patent Laid-Open No. 2001-148788.  
           [0011]    A processing time for one line varies considerably regarding the code such as JBIG, in which there are large differences in the compression rates in dependence upon data. The conventional example can not cope with the large differences.  
           [0012]    To avoid this problem and increase the processing speed, it is an idea to mount a hardware CODEC or the like capable of performing high speed processing. However, this idea causes a demerit that costs is too great.  
           [0013]    That is, in the communication terminal apparatus of the conventional example, one CPU can not control two or more communications having the same or different protocols to be performed at the same time without adversely affecting each other.  
         SUMMARY OF THE INVENTION  
         [0014]    It is one object of the present invention to provide a communication control terminal apparatus that can employ one CPU to control two or more communications having the same or different protocols to be executed at the same time without adversely affecting each other, and a storage medium on which a program therefor is stored. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0015]    [0015]FIG. 1 is a block diagram showing a communication control terminal apparatus CC 1  according to one embodiment of the present invention;  
         [0016]    [0016]FIG. 2 is a diagram showing operations performed by a program stored in a ROM  3  according to the embodiment;  
         [0017]    [0017]FIGS. 3A, 3B,  3 C,  3 D,  3 E and  3 F are diagrams showing line management parameters in the embodiment;  
         [0018]    [0018]FIG. 4 is comprised of FIGS. 4A and 4B showing flowcharts of the line management processing in the embodiment;  
         [0019]    [0019]FIG. 5 is a diagram showing an example of the parameter management in a communication control unit according to the embodiment;  
         [0020]    [0020]FIG. 6 is comprised of FIGS. 6A and 6B showing flowcharts of the processing performed when a transmission request is received by a PSTN communication control unit according to the embodiment;  
         [0021]    [0021]FIG. 7 is a diagram showing an example of CODEC process parameters in the embodiment;  
         [0022]    [0022]FIG. 8 is comprised of FIGS. 8A and 8B showing flowcharts of the processing performed by the codec unit according to the embodiment; and  
         [0023]    [0023]FIG. 9 is a flowchart showing a conventional CODEC operation. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0024]    [0024]FIG. 1 is a block diagram showing a communication control terminal apparatus CC 1  according to one embodiment of the present invention.  
         [0025]    The communication control terminal apparatus CC 1  can be connected to a PSTN line, an ISDN line and a LAN, and can perform G 3 FAX communication, G 4 FAX communication and iFAX communication at the same time.  
         [0026]    The communication control terminal apparatus CC 1  comprises: a CPU  1 , a CLOCK  2 , a ROM  3 , a RAM  4 , a memory unit  5 , an operation unit  6 , a codec unit  7 , a reading unit  8 , a recording unit  9 , a PSTN communication control unit  10 , an ISDN communication control unit  11 , and a network communication control unit  12 .  
         [0027]    The CPU  1  is a system control unit that controls the entire apparatus. The CLOCK  2  is constituted by an IC, and measures the operation intervals (or counts lock pulses). The ROM  3  is used to store a control program for the CPU  1 . And the RAM  4  is an SRAM for storing, for example, a program control variable, a registered setup value, device management data and work buffers.  
         [0028]    The memory unit  5  is constituted by a DRAM for storing data such as image data. The operation unit  6  is constituted by a display unit and a keyboard, which an operator can manipulate to enter various instructions. The codec unit  7  codes and decodes information. The reading unit  8 , which is constituted by a CS image sensor and a document feeding mechanism, optically reads a document and converts read data into electric image data. And the recording unit  9  records the image data or file data on a paper.  
         [0029]    The PSTN communication control unit  10  is connected to the PSTN line and controls the entire communication via that line. The ISDN communication control unit  11  is connected to the ISDN line and controls the entire communication via that line. And the network communication control unit  12  is connected to a network, such as a LAN, and controls the entire network communication.  
         [0030]    The operation performed by the embodiment will now be described.  
         [0031]    [0031]FIG. 2 is a diagram showing operation performed by the program stored in the ROM  3  according to the embodiment.  
         [0032]    First, an example of management of plural lines will be described.  
         [0033]    [0033]FIGS. 3A to  3 F are diagrams showing line management parameters for the embodiment.  
         [0034]    The line management parameters are provided for each of the lines.  
         [0035]    PSTN line management parameters are shown in FIG. 3A.  
         [0036]    pstn_use_flg  611  is a flag indicating the usage state of a PSTN line. When the PSTN line is idle, the pstn_use_flg  611  is set to OFF, while when the PSTN communication is being conducted, the pstn_use_flg  611  is set to ON.  
         [0037]    path_id  612  is a multi-communication control management ID that is provided for a communication being currently conducted. Each of the control units manages and controls the parameters based on the path_id.  
         [0038]    Network management parameters are shown in FIG. 3B.  
         [0039]    ifax_use_flg  621  is a flag indicating the iFAX communication state. The ifax_use_flg  621  is set to OFF when the iFAX communication is idle, while it is set to ON when the iFAX communication is being conducted.  
         [0040]    path_id  622  is a multi-communication control management ID that is provided for a communication being currently conducted. Each of the control units manages and controls the parameters bases on the path_id.  
         [0041]    [0041]FIGS. 3C and 3D are diagrams showing ISDN line management parameters.  
         [0042]    isdn 1 _use_flg  631  and isdn 2 _use_flg  641  are flags indicating the respective usage states of the ISDN lines. Each of these flags  631  and  641  is set to OFF when the ISDN line is idle, while it is set to ON when the ISDN communication is currently conducted. The ISDN line management parameters are provided for each ISDN lines, and in this embodiment, since two ISDN lines are available, the ISDN line management parameter  1  and the ISDN line management parameter  2  are prepared.  
         [0043]    Each of path_id  632  and path_id  642  is a multi-communication control management ID that is provided for a communication being currently conducted. Each of the control units manages and controls the parameters based on the path_ids.  
         [0044]    [0044]FIG. 3E is a diagram showing a pathID. management table. The pathID. management table is a table wherein communications and path_ids are correlated, and a line type is stored in any of the path_ids  651  to  654  that are currently employed.  
         [0045]    The path_ids  651  to  654  are used to manage two or more communication processes.  
         [0046]    One path_id is allocated for one communication process. Message exchange and data transmission among the control units are performed based on the path_ids, and the messages/data having the same path_id relate to the same communication.  
         [0047]    [0047]FIG. 3F is a diagram showing an example for managing a calling queue.  
         [0048]    A calling job from the operation unit  6  by a user, or a calling job by a timer or by a transmission, is registered as a communication queue (com_queue), which will be described in detail at step S 710  in FIG. 5, in the calling queue management table using a pointer.  
         [0049]    The line management process according to the embodiment will now be described.  
         [0050]    [0050]FIG. 4 is comprised of FIGS. 4A and 4B showing flowcharts of the line management processing for the embodiment.  
         [0051]    The line management processing is initiated by the CPU  1 .  
         [0052]    During the line management processing, a check is periodically performed to determine whether the state of a line has been changed (a communication has ended or a call has been received) and whether a calling request is issued (S 301 , S 309  and S 310 ).  
         [0053]    When a calling queue is present in the calling queue management table in FIG. 3F (S 310 ), the contents of the queue are examined (S 311 ) and a line type (com_mode  712 ) is confirmed.  
         [0054]    When the line type is the PSTN line (S 312 ), a check is performed to determine whether or not the PSTN line is occupied. In this embodiment, it is ascertained that the pstn_use_flg  611  indicates that the line is busy (S 313 ). When the pstn_use_flg is OFF, the pstn_use_flg is set to ON, and a path_id is allocated (S 314 ). In the path_id management table in FIG. 3E, an unused number is employed as the path_id, and a corresponding line type is registered.  
         [0055]    The same number is also registered for the path_id  612 , which is the PSTN line management parameter in FIG. 3A.  
         [0056]    The above calling queue is erased from the calling queue table in FIG. 3F (S 315 ), and the queue is transmitted as a communication request to the PSTN communication control unit  10  (S 316 ). Then, the next calling queue is examined.  
         [0057]    When the pstn_use_flg  611  is ON (occupied), the communication queue is maintained in the table (S 309 ), and the next calling queue is examined.  
         [0058]    The same process is performed for the ISDN and the network lines (S 317  to S 327 ).  
         [0059]    Since two communication operations are available via the ISDN line, two sets of line management parameters are employed.  
         [0060]    When a call has arrived, the communication control unit for a corresponding line transmits a communication queue as a call arrival notification. When the notification is received (S 309 ), the communication queue is examined (S 311 ), and the line through which the notification has been issued is identified.  
         [0061]    When a call has arrived via the PSTN line (S 312 ), the pstn_use_flg  611  is examined. When the pstn_use flg is OFF (S 313 ), the pstn_use flg  611  is set to ON, and a path_id is allocated (S 314 ). The allocation of the path_id is performed in the same manner as for the calling. Then, the queue is transmitted as a communication process request to the PSTN communication control unit  10  (S 316 ).  
         [0062]    When the pstn_use_flg is ON, it is assumed that the line is occupied, and a message for denial of a call reception is transmitted to the PSTN control unit  10  (S 328 ).  
         [0063]    The same processing is performed for the ISDN and network communication (S 317  to S 327 ).  
         [0064]    When a communication end notification is received via any line (any a specific communication control unit) (S 301 ), a corresponding line is identified by referring to the path_id management table in FIG. 3E. When the communication end notification is identified to be received via the PSTN line (S 302 ), the pstn_use_flg  611  is set to OFF (S 303 ). The same process is performed for the ISDN line and the network (S 304  to S 308 ).  
         [0065]    An example of data processing during the communication process will now be described for this embodiment.  
         [0066]    [0066]FIG. 5 is a diagram showing example parameter management for the communication control unit according to the embodiment.  
         [0067]    The data processing performed during the communication process is controlled by the CPU  1 . The parameters required for communication are transmitted as communication queues to the individual communication control units. As an example, a communication queue  710  includes the following parameters.  
         [0068]    path_id  711  is a communication management parameter, com_mode  712  is a parameter indicating a line type, and job_mode  713  indicates an operation type, such as calling, call arrival and transmission/reception.  
         [0069]    adrs  714  is a parameter that includes address information of a communication destination. mem_code  715  is a parameter indicating a code mode for storage when data is stored in the memory unit  5 , and the MH/MR/JBIG/TEXT value or the like is entered. mom_buf_adrs  716  is a parameter indicating an address of a memory buffer.  
         [0070]    mem_buf-size  717  is a parameter indicating the size of mem_buf_adrs  716 . com_code  718  is a parameter representing a data coding mode during the communication process, and the MH/MR/JBIG/TEXT value or the like is entered.  
         [0071]    com_buf_adrs  719  is a parameter representing an address of a communication buffer. com_buf_size  720  is a parameter indicating the size of the communication buffer.  
         [0072]    size  721  is a parameter indicating the size of image data, and A4/B4/A3 or the like is entered. resolution  722  is a parameter indicating the resolution of image data.  
         [0073]    The data processing performed by the CPU  1  during the communication process will now be described. This data processing performed by the CPU  1  is initiated upon the reception of a message from each communication control unit.  
         [0074]    An explanation will now be given for an example of the data processing performed by the CPU  1  during the communication process when a transmission request is received by the PSTN communication control unit  10 .  
         [0075]    [0075]FIG. 6 is comprised of FIGS. 6A and 6B showing flowcharts of the data processing performed, according to this embodiment, by the CPU  1  during the communication process when a transmission request is received by the PSTN communication control unit  10 .  
         [0076]    When a message is received (S 402 ), the contents of the message are examined (S 403 ). And when the message is a communication process request, the mem_buf_adrs  716  and the mem_buf_size  717  are set in accordance with the contents of the communication queue  710 , and a request for converting code for storage into code for communication is transmitted to the codec unit  7  (S 405 ). The CPU  1  then enters the next message waiting state.  
         [0077]    When a process result notification is received from the codec unit  7  (S 406 ), the results are examined.  
         [0078]    When the results indicate that a desired code has been prepared (S 407 ), this code is transmitted (S 408 ).  
         [0079]    When the results indicate that no converted data is present, the mem_buf_adrs  716  and the mem_buf_size  717  are again set as next data for conversion, and a code conversion request is again output to the codec unit  7  (S 410 ). The CPU  1  then enters the next message waiting state.  
         [0080]    When a response message is received from the PSTN communication control unit  10  (S 411 ), the contents of the message are examined. And when the message is a data transmission notification (S 412 ), the next code conversion request is transmitted to the codec unit  7  (S 413 ). Whereas when the message is a communication end notification (S 414 ), a terminating process is performed (S 415 ) and the processing is terminated. When the message is a disconnection notification (a disconnection due to malfunction in a partner machine, a line barrier or no response), the terminating process is also performed (S 416 ) and the communication process is terminated. The other messages are handled as other processes.  
         [0081]    The same processing is performed for the operation when a call has arrived.  
         [0082]    Further, the operation of the ISDN/network communication control unit is also performed in the same manner.  
         [0083]    The data processing during communication by the CPU  1  can be conducted as multi-function by switching the message waiting status and the message process status, so that two or more communications can be simultaneously performed.  
         [0084]    The processing performed by the codec unit  7  for this embodiment will now be described.  
         [0085]    [0085]FIG. 7 is a diagram showing an example of codec processing parameters according to this embodiment.  
         [0086]    The codec unit  7  serves for each communication one-to-one. The individual processes are managed by using the path_ids shown in FIG. 5E, and processing parameters are provided for each path_id.  
         [0087]    job_mode  502  indicates a communication type, and a value for a G 4  transmission, G 4  reception or the like is entered. src_code  503  indicates the type of code to be converted, and the MH/MR/JBIG/TEXT value or the like is entered. At the time of transmission, it is a code for storage, while at the time of reception, it is a code for communication.  
         [0088]    src_buf_adrs  504  indicates a buffer address for storing the code to be converted. src_buf_size  505  indicates the size of src_buf_adrs  504 . dst_code  506  indicates the type of converted code, and the MH/MR/JBIG/TEXT value is entered. At the time of transmission, it is a code for communication, while at the time of reception, it is a code for storage.  
         [0089]    dst_buf_adrs  507  indicates a buffer address for storing the converted code. dst_buf_size  508  indicates the size of dst_buf_size  507 . codec_timer  509  indicates a value of a codec timer. The timer value represents a continuous operation permission time in the codec process shown in FIGS. 8A and 8B. The value of the codec_timer  509  is determined in accordance with the communication type indicted in job_mode  502 .  
         [0090]    size  510  indicates the size for image communication, and the A4/B4/A3 value or the like is entered. resolution  511  indicates the resolution for image communication. A medi-buffer address  512  is an address of a medi-buffer  513  being a buffer for codec processing.  
         [0091]    An operation timer of the codec unit  7  for each communication type is registered in codec_timer_tbl  520 . A value of the operation timer of the codec unit  7  in G4 communication is registered in g 3 fax_timer  521 . A value of the operation timer of the codec unit  7  in G4 communication is registered in g 4 fax_timer  522 . A value of the operation timer of the codec unit  7  in iFAX communication is registered in ifax_timer  523 .  
         [0092]    An example of the operation for the codec unit  7  according to this embodiment will now be described.  
         [0093]    [0093]FIG. 8 is comprised of FIGS. 8A and 8B showing flowcharts of the operation of the codec unit  7  according to the embodiment.  
         [0094]    As well as the communication control units, the codec unit  7  enters the operating state upon receiving a message from each processing unit.  
         [0095]    Upon the reception of the message, the codec unit  7  examines the contents of the message, and in accordance with path_id, registers parameters in the codec_param  501  (S 202 ).  
         [0096]    When the message is a code conversion request from the communication control unit (S 203 ), the codec unit  7  identifies the communication type based on job_mode  502 .  
         [0097]    When the communication type is a G3 communication, the codec unit  7  sets the value of the g 3 fax_timer  521  in the codec_timer_tbl  520  in the codec_timer  509  corresponding to the codec_param. When the communication type is a G4 communication or an iFAX communication, the codec unit  7  also sets the value of the g 4 fax_timer  522  or the ifax_timer  523  in the codec_timer  509 .  
         [0098]    Generally, for data communication, a predetermined amount of code data must be transmitted to a line within a period specified by a communication protocol, and this specification differs depending on the protocol. To perform two or more communications at the same time, if the period for one communication is prolonged, this affects the other communication operation, and when code data is not transmitted to a line within a predetermined time period, the line may be disconnected by a communication partner. Therefore, for the CODEC processing, which is an especially heavy task that imposes a great load on the CPU  1  to perform multiple processes at the same time, an operating time within a period that does not affect another communication is set for the codec_timer.  
         [0099]    That is, when a protocol of which the regulations on the operation time are strict, a relatively long operating time is set for the codec_timer. But when a protocol of which the regulations are not strict, a relatively short operating time is set for the codec_timer.  
         [0100]    Many methods can be employed to set the value for the codec_timer_tbl  520 . This value may be set as an apparatus initialization value, in accordance with the communication protocol and the processing capability of the terminal, or it may be set through an operation.  
         [0101]    When the timer is set, the processing (the coding process and the decoding process) is begun. Generally, the codec unit  7  decodes target code to obtain intermediate code, and then converts the intermediate code into a predetermined code.  
         [0102]    First, the decoding process is performed (S 209 ) and the decoded data is temporarily stored in the medi-buffer  513 . The decoding results are examined (S 210 ), and when the results indicate there is no data to be decoded (S 216 ), a request for data to be decoded is issued to the communication control unit. The processing is thereafter terminated.  
         [0103]    When the decoding results indicate that the process for the medi-buffer has been completed, the codec_timer  509  is examined (S 211 ). And when the operating time has not expired, the conversion of the intermediate code is begin (S 212 ) for a buffer for converted code.  
         [0104]    When the operating time has expired, it is assumed that the processing time allocated for one communication has elapsed, and the job is rotated to a queue to be processed that is registered in the codec_param  501  (S 215 ). The flow then returns to the start of the codec process (S 202 ).  
         [0105]    When the results indicate that the amount of code designated in the dst_buf_size  508  has been processed (S 214 ), the codec unit  7  transmits a code completion notification to the communication control unit. The processing is thereafter terminated.  
         [0106]    When the results indicate that the amount of code designated in the dst_buf_size  508  has not yet been processed, the codec_timer  509  is examined (S 217 ). And when the operating time has not yet expired, the flow returns to the decoding process (S 209 ).  
         [0107]    When the operating time has expired, as in the decoding process, the job is rotated to a queue to be processed that is registered in the codec_param  501  (S 218 ). The flow then returns to the start of the processing (S 202 ). The codec unit  7  can resume the process in the communication newly designated by queue rotation, with the state whereat the previous process was terminated by queue rotation.  
         [0108]    When only one communication is currently performed, only one codec job queue is present. Then, since the process is returned naturally to the same queue by queue rotation, the processing can be conducted by switching-over adequate for the number of communications.  
         [0109]    According to the embodiment, the codec unit  7  has timers for setting the period of time for the processing in accordance with respective communication types, and changes the process queue each time the timer period has elapsed. Thus, the processing time is not solely spent to perform one communication, and efficient multiplex communication is enabled.  
         [0110]    Furthermore, according to the embodiment, since the execution time for the codec unit  7  is appropriately designated by setting the timer value, any type of communication protocol can be coped with, and a flexible and efficient multiplex communication system can be designed.  
         [0111]    Further, according to the embodiment, since high-speed hardware is not required, the costs can be effectively reduced.  
         [0112]    As is described above, according to the embodiment, there is provided the communication control terminal apparatus comprises: means for storing information by using predetermined code; codec means for decoding or coding the information; and two or more communication control means for communicating the information, wherein code for communication converted by the codec means is transmitted via the communication control means. Since the execution time for the codec means is changed in accordance with the communication procedures performed by the communication control means, communications to be conducted using the same or different protocols, can be controlled by a single CPU of the communication control terminal apparatus, so that these communications do not adversely affect each other.  
         [0113]    According to the embodiment, two or more communications to be conducted using the same or different protocols, can be controlled by a single CPU of the communication control terminal apparatus, so that these communications do not adversely affect each other.