PATENT ABSTRACT
An image capturing apparatus includes: an encoding unit configured to perform encoding processing on an image output from an image capturing unit for obtaining an image; a communication unit configured to receive designation of a resolution of the encoding unit from an information processing apparatus; an obtaining unit configured to obtain a resolution which is associated with the resolution set for the image capturing unit, and is settable for the encoding unit; a determination unit configured to determine whether the designated resolution is the resolution obtained by the obtaining unit and settable for the encoding unit; and a transmission unit configured to transmit an error response to the information processing apparatus, if the determination unit determines that the designated resolution is not the resolution obtained by the obtaining unit and settable for the encoding unit.

PATENT DESCRIPTION
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a Continuation of U.S. application Ser. No. 14/646,330, filed May 20, 2015, which is a National Stage filing of International Application No. PCT/JP2013/081331 filed Nov. 14, 2013, which claims priority from Japanese Patent Application No. 2012-256772 filed Nov. 22, 2012, each of which is hereby incorporated by reference herein in their entirety. 
     
    
     TECHNICAL FIELD 
       [0002]    The present invention relates to an image capturing apparatus, an image capturing system, a control method of the image capturing apparatus, and a computer readable storage medium. 
       BACKGROUND ART 
       [0003]    Conventionally, an image capturing apparatus for transmitting a captured image to a receiving apparatus includes commands for allowing an external apparatus to change the settings of the image capturing apparatus and designate the start of image distribution. Known examples of these commands are those defined by standards formulated by the ONVIF (Open Network Video Interface Forum). 
         [0004]    In the ONVIF specifications (http://www.onvif.org/specs/DocMap.html), commands formulated by the ONVIF are described. 
         [0005]    The above-described commands include, for example, a command for changing, from an external apparatus, the resolution of image data to be generated by an image capturing unit of the image capturing apparatus. The above-described commands also include a command for changing the resolution of a distribution image to be distributed to an external apparatus when the distribution image is generated by encoding image data generated by the image capturing unit. For example, in the ONVIF standards, a SetVideoSourceMode command is defined as the former command, and a SetVideoEncoderConfiguration command is defined as the latter command. 
         [0006]    Furthermore, in addition to the ONVIF standards, Japanese Patent Laid-Open No. 2005-323007 has disclosed an image capturing apparatus including a control unit for controlling the expansion and compression of a captured image. 
         [0007]    Unfortunately, there is a problem that if only one of the resolution of image data to be generated by the image capturing unit and the resolution of a distribution image to be generated by a compression encoding unit is changed, mismatching occurs in a combination of the two resolutions and this makes the generation of the distribution image impossible in some cases. Also, in a case like this, it is necessary to transmit a command for correctly changing the other resolution from an external apparatus to the image capturing apparatus, in order to cancel the mismatching and correctly generate the distribution image. This complicates the user&#39;s operation. 
         [0008]    Assume that the output resolution of the image capturing unit is 1,600×1,200 pixels (UXGA), and the output resolution of the compression encoding unit is 1,280×1,024 pixels (SXGA). In this case, if the output resolution of the image capturing unit is changed to 1,024×768 (XGA), the compression encoding unit in which a higher output resolution is set may become unable to generate any distribution image. Assume also that the output resolution of the image capturing unit is 1,600×1,200 pixels (resolution aspect ratio=4:3), and the output resolution of the compression encoding unit is 1,280×1,024 pixels (resolution aspect ratio=4:3). In this case, if the output resolution of the image capturing unit is changed to 1,920×1,080 (full HD, resolution aspect ratio=16:9), the compression encoding unit in which a different resolution aspect ratio is set may become unable to generate any distribution image. 
         [0009]    If this is the case, before obtaining a video stream from the image capturing unit, the user must change the output resolution of the compression encoding unit to a resolution, such as 1,024×768 (XGA) or 1,920×1,080 (resolution aspect ratio=16:9), which matches the output resolution of the image capturing unit, and this complicates the operation. 
       SUMMARY OF INVENTION 
       [0010]    The present invention provides an image capturing technique that prevents the occurrence of mismatching in a combination of the resolution of image data to be generated by an image capturing unit and the resolution of a distribution image to be generated by a compression encoding unit, even when only one resolution is changed. 
         [0011]    According to one aspect of the present invention, there is provided an image capturing apparatus comprising: an encoding unit configured to perform encoding processing on an image output from an image capturing unit for obtaining an image; a communication unit configured to receive designation of a resolution of the encoding unit from an information processing apparatus; an obtaining unit configured to obtain a resolution which is associated with the resolution set for the image capturing unit, and is settable for the encoding unit; a determination unit configured to determine whether the designated resolution is the resolution obtained by the obtaining unit and settable for the encoding unit; and a transmission unit configured to transmit an error response to the information processing apparatus via the communication unit, if the determination unit determines that the designated resolution is not the resolution obtained by the obtaining unit and settable for the encoding unit. 
         [0012]    According to another aspect of the present invention, there is provided a control method of an image capturing apparatus including an encoding unit configured to perform encoding processing on an image output from an image capturing unit for obtaining an image, comprising: a first communication step of receiving designation of a resolution of the encoding unit from an information processing apparatus; an obtaining step of obtaining a resolution which is associated with the resolution set for the image capturing unit, and is settable for the encoding unit; a determination step of determining whether the designated resolution is the resolution obtained in the obtaining step and settable for the encoding unit; and a transmission step of transmitting an error response to the information processing apparatus, if it is determined in the determination step that the designated resolution is not the resolution obtained in the obtaining step and settable for the encoding unit. 
         [0013]    According to still another aspect of the present invention, there is provided a computer readable storage medium containing computer-executable instructions that control an image capturing apparatus including an encoding unit configured to perform encoding processing on an image output from an image capturing unit for obtaining an image, the medium comprising: computer-executable instructions that receive designation of a resolution of the encoding unit from an information processing apparatus; computer-executable instructions that obtain a resolution which is associated with the resolution set for the image capturing unit, and is settable for the encoding unit; computer-executable instructions that determine whether the designated resolution is the obtained resolution settable for the encoding unit; and computer-executable instructions that transmit an error response to the information processing apparatus, if it is determined that the designated resolution is not the obtained resolution settable for the encoding unit. 
         [0014]    According to yet another aspect of the present invention, there is provided an image capturing system comprising an image capturing apparatus including an encoding unit configured to encode an image output from an image capturing unit for obtaining an image, and an information processing apparatus connected to the image capturing apparatus across a network, wherein the information processing apparatus comprises a generation unit configured to generate designation of a resolution of the encoding unit, and the image capturing apparatus comprises: a communication unit configured to receive the designation of the resolution of the encoding unit from the information processing apparatus; an obtaining unit configured to obtain a resolution which is associated with the resolution set for the image capturing unit, and is settable for the encoding unit; a determination unit configured to determine whether the designated resolution is the resolution obtained by the obtaining unit and settable for the encoding unit; and a transmission unit configured to transmit an error response to the information processing apparatus via the communication unit, if the determination unit determines that the designated resolution is not the resolution obtained by the obtaining unit and settable for the encoding unit. 
         [0015]    Further features of the present invention will become apparent from the following description of exemplary embodiments (with reference to the attached drawings). 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0016]      FIGS. 1A and 1B  are views showing examples of the arrangements of an image capturing apparatus and image capturing system; 
           [0017]      FIG. 2  is a view showing an example of the internal arrangement of the image capturing apparatus; 
           [0018]      FIG. 3  is a view showing an example of the structure of parameters held by the image capturing apparatus; 
           [0019]      FIG. 4  is a view showing an example of a table storing information for matching the settings of an image capturing unit of the image capturing apparatus with the settings of a compression encoding unit; 
           [0020]      FIG. 5A  is a view showing an example of a command sequence from the start of setting of the image capturing apparatus to video distribution; 
           [0021]      FIG. 5B  is a view showing an example of a command sequence when changing the output resolution of the image capturing unit of the image capturing apparatus; 
           [0022]      FIG. 5C  is a view showing an example of a command sequence when changing the output resolution of the compression encoding unit of the image capturing apparatus; 
           [0023]      FIG. 6A  is a view for explaining a procedure when the image capturing apparatus changes the settings of the image capturing unit; 
           [0024]      FIG. 6B  is a view for explaining a procedure when the image capturing apparatus transmits a selectable set value to an information processing apparatus; 
           [0025]      FIG. 6C  is a view for explaining a procedure when the image capturing apparatus changes the settings of the compression encoding unit; 
           [0026]      FIG. 6D  is a view for explaining a procedure when the image capturing apparatus transmits a selectable set value to the information processing apparatus; 
           [0027]      FIG. 6E  is a view for explaining a procedure when the image capturing apparatus changes the settings of the compression encoding unit; 
           [0028]      FIG. 7A  is a view showing an example of a setting screen of a client apparatus; and 
           [0029]      FIG. 7B  is a view showing another example of the setting screen of the client apparatus. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0030]    Exemplary embodiments of the present invention will be explained in detail below with reference to the accompanying drawings. However, constituent elements described in these embodiments are merely examples, and the technical scope of the present invention is determined by the scope of the appended claims, and is not limited by the following individual embodiments. 
       First Embodiment 
       [0031]      FIG. 1A  is a view showing an example of a monitoring camera  1000  as an image capturing apparatus according to the embodiment of the present invention. A mechanism  1101  is a mechanism for changing the direction of a lens in a panning direction, a mechanism  1102  is a mechanism for changing the lens direction in a tilting direction, and a mechanism  1103  is a mechanism for changing zooming. 
         [0032]      FIG. 1B  is a view showing an example of the configuration of an image capturing system including the monitoring camera  1000 . A client apparatus  2000  (an information processing apparatus) as an external apparatus is connected to the monitoring camera  1000  across a network  1500  so as to be able to communicate with the monitoring camera  1000 . The client apparatus  2000  transmits various commands such as a command for changing image capturing parameters (to be described later), a command for driving a platform, and a command for starting video streaming to the monitoring camera  1000 . The monitoring camera  1000  transmits responses to these commands and video streaming to the client apparatus  2000 . 
         [0033]      FIG. 2  is a view showing an example of the internal arrangement of the monitoring camera  1000  (the image capturing apparatus). Referring to  FIG. 2 , a control unit  1001  is a CPU or the like, and controls the whole monitoring camera  1000 . A storage unit  1002  is used as various data storage areas such as a storage area for programs to be mainly executed by the control unit  1001 , a work area to be used while the programs are executed, and a storage area for image data generated by an image capturing unit  1003  (to be described below). 
         [0034]    The image capturing unit  1003  converts an analog signal obtained by capturing an object image into digital data, and outputs the data as a captured image (image data) to the storage unit  1002 . The resolution and frame rate of the image data output from the image capturing unit  1003  can be changed by a SetVideoSourceMode command (to be described later). 
         [0035]    A compression encoding unit  1004  generates image data by performing compression encoding processing on the captured image output from the image capturing 1003 based on a format such as Motion JPEG or H.264, and outputs the generated image data to the storage unit  1002 . The types of the resolution (distribution resolution) of the image data output from the compression encoding unit  1004  have a dependency relationship as shown in  FIG. 4  (to be described later) with each mode of the image capturing unit  1003 . 
         [0036]    A communication unit  1005  receives each control command from the external apparatus (client apparatus  2000 ). Also, the communication unit  1005  transmits a response to each control command to the external apparatus (client apparatus  2000 ). Furthermore, the communication unit  1005  receives first designation for setting the resolution of the image capturing unit  1003 , or second designation for setting the resolution of the compression encoding unit  1004 . When the setting of one resolution is to be changed to a different resolution setting by the first or second designation, the control unit  1001  changes the setting of the other resolution to a resolution matching the setting of one resolution. This resolution changing process will be explained in detail later with reference to  FIGS. 6A, 6C, and 6E . 
         [0037]    An image capturing control unit  1006  controls the tilting mechanism  1101 , panning mechanism  1102 , and zooming mechanism  1103  in response to the values of a panning angle, tilting angle, and zooming magnification input from the control unit  1001 . Also, the image capturing control unit  1006  provides the current panning angle value, tilting angle value, and zooming magnification value of the monitoring camera  1000 , in accordance with an inquiry from the control unit  1001 . The internal arrangement of the monitoring camera  1000  has been explained above with reference to  FIG. 2 . However, the processing blocks shown in  FIG. 2  are exemplary blocks, so the arrangement of the image capturing apparatus according to the embodiment of the present invention is not limited to the processing blocks shown in  FIG. 2 . For example, it is also possible to use a voice input unit in addition to the processing blocks shown in  FIG. 2 , or exclude the image capturing control unit therefrom, that is, various modifications and changes can be made. 
         [0038]    Next, the names and contents of commands, parameters, and the like used in this embodiment will be explained.  FIG. 3  shows the structure of parameters held by the monitoring camera  1000  (the image capturing apparatus) in this embodiment. A MediaProfile  6100  is a parameter set for storing various setting items of the monitoring camera by associating them with each other. The MediaProfile  6100  holds links to various setting items including a ProfileToken as the ID (identification information) of the MediaProfile  6100 , a VideoSourceConfiguration  6102 , a VideoEncoderConfiguration  6103 , a PTZConfiguration  6104 , and a voice encoder. 
         [0039]    A VideoSource  6101  is a set of parameters indicating the performance of the image capturing unit  1003  of the monitoring camera. The VideoSource  6101  includes a VideoSourceToken as the ID of the VideoSource  6101 , and Resolution indicating the resolution of image data which the image capturing unit  1003  can output. The VideoSource  6101  can switch to a plurality of other VideoSourceModes (operation modes) that support different Resolutions, in accordance with a SetVideoSourceMode command (to be described later). 
         [0040]    The VideoSourceConfiguration  6102  is a set of parameters for associating the VideoSource  6101  of the monitoring camera  1000  with the MediaProfile  6100 . The VideoSourceConfiguration  6102  includes Bounds that designate a portion to be cut out, as a distribution image, from image data output from the VideoSource  6101 . 
         [0041]    The VideoEncoderConfiguration  6103  is a set of parameters for associating the settings of an encoder (the compression encoding unit  1004 ) pertaining to image data compression encoding with the MediaProfile  6100 . The compression encoding unit  1004  of the monitoring camera  1000  compression-encodes image data output based on the contents of the VideoSource  6101  and VideoSourceConfiguration  6102 . The compression encoding unit  1004  of the monitoring camera  1000  compression-encodes image data output from the image capturing unit  1003 , in accordance with a parameter such as the compression encoding scheme (for example, JPEG or H.264) set in VideoEncoderConfiguration  6103 , the frame rate, or resolution. The monitoring camera  1000  distributes the compression-encoded image data to the client apparatus  2000  via the communication unit  1005 . 
         [0042]    The VideoEncoderConfiguration  6103  includes a VideoEncoderConfigurationToken as the ID (identification information) of the VideoEncoderConfiguration  6103 . The VideoEncoderConfiguration  6103  also includes Encoding for designating a compression encoding scheme, a Resolution for designating the resolution of an output image, and a Quality for designating the compression encoding quality. Furthermore, the VideoEncoderConfiguration  6103  includes FramerateLimit for designating the maximum frame rate of an output image, and BitrateLimit for designating the maximum bit rate. 
         [0043]    The PTZConfiguration  6104  is a set of parameters for associating the settings of the panning mechanism  1101 , tilting mechanism  1102 , and zooming mechanism  1103  of the monitoring camera  1000  with the MediaProfile  6100 . The PTZConfiguration  6104  contains information pertaining to a coordinate system for expressing actual panning/tilting angle values and an actual zooming magnification value in the panning mechanism, tilting mechanism, and zooming mechanism. 
         [0044]    A table shown in  FIG. 4  contains information of a plurality of choices for matching the settings of the image capturing unit  1003  with those of the compression encoding unit  1004 . This table shown in  FIG. 4  indicates the setting contents of VideoSourceModes supported by the monitoring camera  1000 , and the setting contents of the VideoEncoderConfigurations  6103  matching the VideoSourceModes. The table shown in  FIG. 4  is prestored in the storage unit  1002  of the monitoring camera  1000 , and referred to by the control unit  1001  any time. The table shown in  FIG. 4  need not always be prestored in the storage unit  1002 , and may also obtain necessary data by referring to a database of the external apparatus via the communication unit  1005 . 
         [0045]    A VideoSourceMode  4000  indicates the management number of a VideoSourceMode to be used in internal processing by the monitoring camera  1000 . In this embodiment, the monitoring camera  1000  supports three VideoSourceModes S 1 , S 2 , and S 3 . 
         [0046]    A Resolution  4001  is the parameter value of the Resolution of each VideoSourceMode (S 1 , S 2 , or S 3 ), and indicates the resolution of image data generated by the image capturing unit  1003 . A Framerate  4002  is the parameter value of the frame rate of each VideoSourceMode, and indicates the frame rate of image data to be generated by the image capturing unit  1003 . 
         [0047]    Items from Encoding  4003  to FramerateLimit  4006  are choices of the parameters of the VideoEncoderConfiguration  6103  which match when the VideoSource  6101  is each VideoSourceMode. The Encoding  4003  indicates a choice of a compression encoding scheme in the VideoEncoderConfiguration, which matches the VideoSourceMode. The Resolution Choice  4004  indicates the management number of the resolution of the compression-encoded output image in the VideoEncoderConfiguration, which is to be used in the internal processing of the monitoring camera  1000 . In this embodiment, the monitoring camera  1000  supports four resolutions E 1  to E 4 . 
         [0048]    The Resolution  4005  is the parameter value of the resolution of the VideoEncoderConfiguration, which matches each VideoSourceMode. This set value determines the resolution of a distribution image to be output from the compression encoding unit  1004 . The FramerateLimit  4006  (the frame rate limit) indicates the maximum value of the frame rate in the VideoEncoderConfiguration, which matches each VideoSourceMode. 
         [0049]      FIG. 5A  shows a command sequence from setting start to video distribution between the monitoring camera  1000  and client apparatus  2000 . Transaction means a pair of a command to be transmitted from the client apparatus  2000  to the monitoring camera  1000 , and a response to be returned from the monitoring camera  1000  to the client apparatus  2000 . 
         [0050]    A transaction  7100  is the transaction of a GetVideoSourceConfigurations command. By this command, the client apparatus  2000  obtains a list of the VideoSourceConfigurations  6102  held by the monitoring camera  1000 . 
         [0051]    A transaction  7101  is the transaction of a GetVideoEncoderConfigurations command. By this command, the client apparatus  2000  obtains a list of the VideoEncoderConfigurations  6103  held by the monitoring camera  1000 . 
         [0052]    A transaction  7102  is the transaction of a GetConfigurations command. By this command, the client apparatus  2000  obtains a list of the PTZConfigurations  6104  held by the monitoring camera  1000 . 
         [0053]    A transaction  7103  is the transaction of a CreateProfile command. By this command, the client apparatus  2000  causes the monitoring camera  1000  to form a new MediaProfile  6100 , and obtains its Profiletoken. 
         [0054]    A transaction  7104  is the transaction of an AddVideoSourceConfiguration command, and a transaction  7105  is the transaction of an AddVideoEncoderConfiguration command. A transaction  7108  is each transaction of an AddPTZConfiguration command. By designating the ID in these commands, the client apparatus  2000  can associate a desired VideoSourceConfiguration, desired VideoEncoderConfiguration, and desired PTZConfiguration with the designated MediaProfile. 
         [0055]    A transaction  7106  is the transaction of a GetVideoEncoderConfigurationOptions command. By this command, the client apparatus  2000  obtains the choices or set value range of each parameter acceptable by the monitoring camera  1000 , in the VideoEncoderConfiguration designated by the ID. 
         [0056]    A transaction  7107  is the transaction of a SetVideoEncoderConfiguration command. By this command, the client apparatus  2000  sets each parameter of the VideoEncoderConfiguration  6103 . 
         [0057]    A transaction  7109  is the transaction of a GetStreamUri command. By this command, the client apparatus  2000  obtains an address (URI) with which the monitoring camera  1000  obtains a distribution stream based on the settings of the designated MediaProfile. 
         [0058]    A transaction  7110  is the transaction of a Describe command. By executing this command by using the URI obtained in the transaction  7109 , the client apparatus  2000  requests and obtains information of contents to be distributed by a stream by the monitoring camera  1000 . 
         [0059]    A transaction  7111  is the transaction of a Setup command. By executing this command by using the URI obtained in the transaction  7109 , the client apparatus  2000  and monitoring camera  1000  share a stream transmission method including the session number. 
         [0060]    A transaction  7112  is the transaction of a Play command. By executing this command by using the session number obtained in the transaction  7111 , the client apparatus  2000  requests the monitoring camera  1000  to start streaming. 
         [0061]    In a distribution stream  7113 , the monitoring camera  1000  distributes a stream requested to be started in the transaction  7112  by the transmission method shared in the transaction  7111 . 
         [0062]    A transaction  7114  is the transaction of a Teardown command. By executing this command by using the session number obtained in the transaction  7111 , the client apparatus  2000  requests the monitoring camera  1000  to stop the stream. 
         [0063]      FIG. 5B  shows a command sequence when the setting change of the image capturing unit  1003 , which includes changing of the output resolution, is performed between the monitoring camera  1000  and client apparatus  2000 . 
         [0064]    A transaction  7200  is the transaction of a GetVideoSourceMode command. The GetVideoSourceMode command is a command for returning a list of VideoSourceModes supported by the VideoSource  6101  having the ID designated by the client apparatus  2000 . When receiving the GetVideoSourceMode command, the control unit  1001  of the monitoring camera  1000  obtains the parameters of the VideoSourceModes S 1  to S 3  saved in the storage unit  1002  and shown in  FIG. 4 , and returns the parameters to the client apparatus  2000  via the communication unit  1005 . 
         [0065]    A transaction  7201  is the transaction of a SetVideoSourceMode command. The SetVideoSourceMode command is a command for designating changing of the VideoSourceMode of the VideoSource  6101  designated by the client apparatus  2000 . Transactions  7109  to  7112  and a distribution stream  7113  are the same as those shown in  FIG. 5A . 
         [0066]      FIG. 5C  shows a typical command sequence when changing the output resolution of the compression encoding unit  1004  between the monitoring camera  1000  and client apparatus  2000 . 
         [0067]    Transactions  7101 ,  7106 ,  7107 , and  7109  to  7113  are the same as those of the command sequence shown in  FIG. 5A . 
         [0068]      FIG. 6A  is a view showing processing when the monitoring camera  1000  has received the above-described SetVideoSourceMode command (transaction  7201 ) from the client apparatus  2000 . In step S 1000 , the control unit  1001  stops a video stream currently being distributed via the communication unit  1005 . 
         [0069]    In step S 1001 , the control unit  1001  determines whether the input VideoSourceMode is S 1 , S 2 , or S 3 , obtains the set value of the corresponding VideoSourceMode, and sets the set value in the image capturing unit  1003 . 
         [0070]    In step S 1002 , the control unit  1001  determines whether the set value of the resolution (Resolution) of each VideoEncoderConfiguration stored in the storage unit  1002  is E 1 , E 2 , E 3 , or E 4 . The control unit  1001  sets, in the VideoEncoderConfiguration, the resolution matching the VideoSourceMode determined in step S 1001  and having the same management number. That is, if the resolution of the VideoEncoderConfiguration is 1,920×1,080=E 2  before command reception when the VideoSourceMode of the VideoSource  6101  is changed from S 1  to S 2 , the resolution is changed to 2,048×1,536 as the resolution of E 2  matching S 2  by the reception of this command. 
         [0071]    In step S 1003 , the control unit  1001  sets an Enable flag corresponding to the VideoSourceMode determined in step S 1001  to “True”, and sets enable flags corresponding to other VideoSourceModes to “False”. 
         [0072]    In step S 1004 , the control unit  1001  transmits a normal response to the client apparatus  2000 . 
         [0073]      FIG. 6B  shows processing when the monitoring camera  1000  has received a GetVideoEncoderConfigurationOption command (the transaction  7106 ) from the client apparatus  2000 . In step S 1100 , the control unit  1001  obtains the set value of the VideoSourceMode currently set in the VideoSource  6101 , and determines whether the set value is S 1 , S 2 , or S 3 . 
         [0074]    In steps S 1101 , S 1102 , and S 1103 , the control unit  1001  refers to the table shown in  FIG. 4  which is stored in the storage unit  1002 , and obtains a selectable set value (choice) matching the current VideoSourceMode. The control unit  1001  obtains the choices E 1  to E 4  of the resolution of the VideoEncoderConfiguration, the choices of the Encoding, and the FramerateLimit as the maximum frame rate. For example, when the set value of the current VideoSourceMode is S 3 , the control unit  1001  obtains 800×600 (E 1 ), 640×480 (E 2 ), 320×240 (E 3 ), and 176×144 (E 4 ) as the choices of the Resolution. Also, the control unit  1001  obtains H.264 and MotionJPEG as the choices of the Encoding, and 30 fps as the FramerateLimit. 
         [0075]    In step S 1104 , the control unit  1001  obtains the choices and setting range of the VideoEncoderConfiguration independent of the current VideoSourceMode from the storage unit  1002 . For example, the control unit  1001  obtains 1 to 5 as the settable range of the Quality, and 60 Mbps as the set value of the BitrateLimit. 
         [0076]    In step S 1105 , the control unit  1001  transmits a normal response containing the choices and setting ranges obtained in steps S 1101  to S 1104  to the client apparatus  2000  via the communication unit  1005 . 
         [0077]      FIG. 6C  shows processing when the monitoring camera  1000  has received the above-described SetVideoEncoderConfiguration command (transaction  7107 ) from the client apparatus  2000 . 
         [0078]    In steps S 1200 , S 1201 , and S 1202 , the control unit  1001  determines whether the set value input to the received SetVideoEncoderConfiguration matches the current VideoSourceMode. The control unit  1001  refers to the table shown in  FIG. 4  which is stored in the storage unit  1002 , and determines whether the Resolution, Encoding, and FramerateLimit input to the received SetVideoEncoderConfiguration match the current VideoSourceMode. If even one parameter does not match, the control unit  1001  advances the process to step S 1210 . In step S 1210 , the control unit  1001  transmits an error response to the client apparatus  2000  via the communication unit  1005 . 
         [0079]    On the other hand, in step S 1203 , the control unit  1001  stores the set values of the VideoEncoderConfiguration including the Quality, BitrateLimit, Encoding, FramerateLimit, and Resolution in the storage unit  1002 , and sets them in the compression encoding unit  1004 . 
         [0080]    In step S 1204 , the control unit  1001  transmits a normal response to the client apparatus  2000 . 
         [0081]      FIG. 7A  is a view showing an example of a setting screen of the client apparatus  2000 , in which the VideoSourceMode and VideoEncoderConfiguration of the monitoring camera  1000  according to this embodiment are set. 
         [0082]    When the setting screen shown in  FIG. 7A  is opened, the client apparatus  2000  executes the sequence shown in  FIG. 5A , and displays a video stream obtained in the transaction  7113  in a LiveView area  9000  (a display area). 
         [0083]    An area  9001  is a VideoSourceMode selection area. The client apparatus  2000  displays, in this area, a list of VideoSourceModes obtained by the transaction  7200  of the GetVideoSourceMode command executed when this setting screen is opened, so that the user can select a mode as indicated by reference numeral  9002 . If a VideoSourceMode different from the current setting is selected in this area, the client apparatus  2000  executes the SetVideoSourceMode command, and changes the VideoSourceMode of the monitoring camera  1000 . In this state, the client apparatus  2000  executes the transactions shown in  FIG. 5B , and displays a video stream having the new settings in the LiveView area  9000  (the display area). In addition, the client apparatus  2000  executes the GetVideoEncoderConfigurationOptions command, and updates the choices and setting ranges of the individual parameters of the VideoEncoder in this screen by using the obtained results. Accordingly, the client apparatus  2000  can always provide the user with the choices and setting ranges of the set values of the VideoEncoderConfiguration matching the VideoSourceMode. 
         [0084]    Setting screen switching sections  9003  and  9004  are tabs for switching VideoEncoder setting screens for allowing the user to change the set values of the VideoEncoderConfiguration  6103  of the monitoring camera  1000 . The number of tabs is two (the setting screen switching sections  9003  and  9004 ) in this embodiment, but it is also possible to display tabs equal in number to the VideoEncoderConfigurations  6103  obtained by the GetVideoEncoderConfigurations command and supported by the monitoring camera  1000 . 
         [0085]    An area  9005  is an area for allowing the user to select the compression encoding scheme of each VideoEncoderConfiguration. The GetVideoEncoderConfigurationOptions command is executed when the setting screen is opened, or when a new VideoSourceMode is selected in the VideoSourceMode selection area. The area  9005  displays the choices of encoding obtained by the GetVideoEncoderConfigurationOptions command. A choice  9006  indicates currently selectable Encoding, and a choice  9007  indicates currently unselectable Encoding. 
         [0086]    An area  9008  is a Detail area for allowing the user to select the FramerateLimit, BitrateLimit, and Quality included in the VideoEncoderConfiguration  6103 . The GetVideoEncoderConfigurationOptions command is executed when the setting screen shown in  FIG. 7A  is opened, or when a new VideoSourceMode is selected in the VideoSourceMode selection area. The contents of the setting ranges obtained by the GetVideoEncoderConfigurationOptions command are reflected in setting ranges  9009 ,  9010 , and  9011 . 
         [0087]    An area  9012  is an area for selecting the resolution of the VideoEncoderConfiguration  6103 . The GetVideoEncoderConfigurationOptions command is executed when the setting screen shown in  FIG. 7A  is opened, or when a new VideoSourceMode is selected in the VideoSourceMode selection area. The contents of the choices of the Resolution parameter obtained by the GetVideoEncoderConfigurationOptions command are displayed in a dropdown list  9013 . 
         [0088]    When the user presses an apply button  9014 , the client apparatus  2000  transmits the SetVideoEncoderConfiguration command to the monitoring camera  1000 . The parameters selected in the areas  9005 ,  9008 , and  9012  are reflected in the compression encoding unit  1004  of the monitoring camera  1000 . 
         [0089]    When the VideoSourceMode is changed by the client apparatus  2000 , the monitoring camera  1000  can maintain the contents of choices provided by the setting contents of the VideoEncoderConfiguration and by the VideoEncoderConfigurationOptions command, as contents matching the VideoSourceMode. Accordingly, when obtaining a distribution image after changing the VideoSourceMode, the client apparatus  2000  need not change the setting contents of the VideoEncoderConfiguration to contents matching the VideoSourceMode. That is, even when the resolution of image data to be generated by the image capturing unit  1003  of the monitoring camera  1000  is changed, it is possible to prevent the occurrence of mismatching in various settings including the resolution of a distribution image to be generated by the compression encoding unit  1004 . It is also possible to easily generate a distribution image after the resolution is changed. 
       Second Embodiment 
       [0090]    In the first embodiment, the arrangement in which the contents of choices provided by the setting contents of the VideoEncoderConfiguration and by the VideoEncoderConfigurationOptions command are changed to contents matching the VideoSourceMode has been explained. 
         [0091]    In this arrangement of the first embodiment, the types of the choices of the resolution of the compression encoding unit provided by the GetVideoEncoderConfigurationOptions command are not limited to those matching the VideoSourceMode. It is also possible to always provide all choices of the resolution to the client apparatus  2000  by the GetVideoEncoderConfigurationOptions command. In accordance with a new set value set in the compression encoding unit  1004  by the client apparatus  2000  by using the SetVideoEncoderConfiguration command, the monitoring camera  1000  may also internally switch the VideoSourceMode to a mode matching the new set value. 
         [0092]    The second embodiment of the present invention taking this point into consideration will be explained below. Note that an explanation of the same portions as those of the first embodiment will be omitted. 
         [0093]      FIG. 6D  is a view showing processing when a monitoring camera  1000  has received the GetVideoSourceConfigurationOptions command from a client apparatus  2000 . 
         [0094]    In step S 1300 , a control unit  1001  refers to the table shown in  FIG. 4  which is stored in a storage unit  1002 , and obtains all possible choices of the resolution of the VideoEncoderConfiguration. That is, the control unit  1001  obtains E 1  to E 4  in S 1 , E 1  to E 4  in S 2 , and E 1  to E 4  in S 3  as choices. 
         [0095]    In step S 1301 , the control unit  1001  refers to the table shown  FIG. 4  which is stored in the storage unit  1002 , and obtains all possible choices of the compression encoding scheme of the VideoEncoderConfiguration. That is, the control unit  1001  obtains MotionJPEG and H.264 as choices. 
         [0096]    In step S 1302 , the control unit  1001  refers to the table shown in  FIG. 4  which is stored in the storage unit  1002 , and obtains the maximum one of possible values of the FramerateLimit of the VideoEncoderConfiguration. That is, the control unit  1001  obtains 30 fps as the maximum value of the FramerateLimit. 
         [0097]    In step S 1303 , the control unit  1001  obtains the choices and setting range of the VideoEncoderConfiguration independent of the current VideoSourceMode from the storage unit  1002 . For example, the control unit  1001  obtains 1 to 5 as the settable range of the Quality, and 60 Mbps as the set value of the BitrateLimit. 
         [0098]    In step S 1304 , the control unit  1001  transmits a normal response containing the choices and setting range obtained in steps S 1300  to S 1303  to the client apparatus  2000  via a communication unit  1005 . 
         [0099]      FIG. 6E  is a view showing processing when the monitoring camera  1000  has received the above-described SetVideoEncoderConfiguration command from the client apparatus  2000 . 
         [0100]    In step S 1400 , the control unit  1001  refers to the table shown in  FIG. 4  which is stored in the storage unit  1002 , and determines whether the resolution set in the received SetVideoEncoderConfiguration command matches the current VideoSourceMode. If the resolution matches the mode (Yes in step S 1400 ), the control unit  1001  advances the process to step S 1201 . If the resolution does not match the mode (No in step S 1400 ), the control unit  1001  advances the process to step S 1410 . 
         [0101]    In step S 1410 , the control unit  1001  refers to the table shown in  FIG. 4  which is stored in the storage unit  1002 , and switches the current VideoSourceMode to a VideoSourceMode having a matched input resolution. For example, when 640×480 is input as a Resolution to this command while the VideoSourceMode is S 1 , the VideoSourceMode is switched to S 3  matching this resolution. When the resolution is changed to a resolution different from the setting of an image capturing unit (the resolution of the VideoSourceMode) by the command for setting the resolution of the encoding unit (the resolution of a distribution image), the control unit  1001  changes the setting of the resolution of the image capturing unit to a resolution matching the resolution of the encoding unit. Processes in steps S 1201  to S 1204  and S 1210  are the same as those shown in  FIG. 6C . 
         [0102]      FIG. 7B  is a view showing an example of a setting screen of the client apparatus  2000  in which the VideoSourceMode and VideoEncoderConfiguration of the monitoring camera  1000  according to this embodiment are set. 
         [0103]    An area  9012  is an area for selecting the resolution of a VideoEncoderConfiguration  6103 . The GetVideoEncoderConfigurationOptions command is executed when the setting screen shown in  FIG. 7B  is opened. A dropdown list  9100  displays the contents of the choices of a Resolution parameter obtained by the GetVideoEncoderConfigurationOptions command. As shown in  FIG. 6D , the monitoring camera  1000  according to this embodiment provides all resolutions obtained from the table shown in  FIG. 4  as choices. Therefore, the dropdown list  9100  displays all the resolutions. 
         [0104]    The monitoring camera  1000  provides the client apparatus  2000  with all possible setting contents of the VideoEncoderConfiguration as choices, regardless of the VideoSourceMode. If a parameter of the VideoEncoderConfiguration not matching the current VideoSourceMode, which includes the resolution of a compression encoding unit  1004 , is designated, it is possible to internally switch to a matching VideoSourceMode. Accordingly, when obtaining a distribution image after the parameter of the VideoEncoderConfiguration is changed, the client apparatus  2000  need not change the setting contents of the VideoSourceMode to contents matching the VideoEncoderConfiguration. That is, even when various settings including the resolution of a distribution image to be generated by the compression encoding unit  1004  are changed, it is possible to prevent the occurrence of mismatching in the resolution of image data to be generated by an image capturing unit  1003 . It is also possible to facilitate generating a distribution image after the resolution is changed. 
         [0105]    The operations of the monitoring camera, application program, and client apparatus according to the present invention have been disclosed in the first and second embodiments. However, the spirit and scope of the invention are not limited to the above-described embodiments, and partially changeable. 
         [0106]    For example, in step S 1002  of  FIG. 6A , the set values of the Resolutions of the VideoEncoderConfigurations are uniformly changed to a resolution having the same management number matching the VideoSourceMode. However, the spirit and scope of the present invention are not limited to this. For example, of the Resolutions of the VideoEncoderConfigurations, a Resolution that keeps matching before and after the VideoSourceMode is changed can also be kept used after the VideoSourceMode is changed. 
         [0107]    Also, all possible choices of the resolution of the VideoEncoderConfiguration are provided in step S 1300  of  FIG. 6D , but the spirit and scope of the present invention are not limited to this. For example, it is also possible to provide only a resolution matching the current VideoSourceMode as a choice, only when a video stream having a given resolution has already been distributed from the monitoring camera  1000 . 
         [0108]    Furthermore, all possible compression encoding schemes of the VideoEncoderConfiguration are obtained as choices in step S 1301  of  FIG. 6D , but the present invention is not limited to this. It is also possible to obtain only choices of compression encoding schemes matching all VideoSourceModes. This makes it possible to reduce the choice providing range, and prevent the SetVideoEncoderConfiguration command from designating compression encoding that does not match the VideoSourceMode selected at that point of time in step S 1201 . 
         [0109]    In addition, the maximum one of all possible values of the FramerateLimit of the VideoEncoderConfiguration is obtained in step S 1302  of  FIG. 6D , but the present invention is not limited to this. For example, it is also possible to obtain the maximum FramerateLimit matching all VideoSourceModes. This makes it possible to reduce the choice providing range, and prevent the SetVideoEncoderConfiguration command from designating a FramerateLimit that does not match the VideoSourceMode selected at that point of time in step S 1201 . 
         [0110]    Also, in step S 1410  of  FIG. 6E , VideoSourceModes are selectively switched based on the setting of the resolution of the SetVideoEncoderConfiguration command. However, the spirit and scope of the present invention are not limited to this. That is, a plurality of matching VideoSourceModes may exist. Accordingly, it is also possible to select the most matching VideoSourceMode based not only on the resolution but also on a plurality of other settings of the compression encoding unit, such as the compression encoding scheme and FramerateLimit. 
         [0111]    In the present invention as described above, even when only one of the resolution of image data to be generated by the image capturing unit and the resolution of a distribution image to be generated by the compression encoding unit is changed, it is possible to prevent the occurrence of mismatching in a combination of these resolutions. 
       OTHER EMBODIMENTS 
       [0112]    Embodiments of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions recorded on a storage medium (for example, non-transitory computer-readable storage medium) to perform the functions of one or more of the above-described embodiment(s) of the present invention, and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment (s). The computer may comprise one or more of a central processing unit (CPU), micro processing unit (MPU), or other circuitry, and may include a network of separate computers or separate computer processors. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like. 
         [0113]    While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.