Abstract:
A transmission apparatus includes: a communication unit performing transmission and reception of an encoded data packet with other terminals; a redundant code generating unit generating a redundant code packet for restoring a loss of the data packet; a redundant code control unit controlling a band used by the redundant code packet; a buffer for retransmission accumulating retransmission packets that are retransmitted to the other terminals at a time of the loss of the data packet; a retrieval unit retrieving a corresponding retransmission packet from the buffer for retransmission upon receiving a retransmission request for the data packet from the other terminals; a retransmission control unit controlling a band used for retransmission that is used at a time of transmission of the retransmission packet; and a band control unit controlling the bandwidth of a redundant code based on the band used for retransmission and a band used for the redundant code.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     The invention relates to a method and apparatus for transmitting encoded media data.  
         [0002]     Conventionally, in a best-effort transmission line environment such as the Internet, a large volume of encoded packet data (media data) such as streaming information or video telephony is transmitted continuously.  
         [0003]     In the best-effort transmission line environment as described above, congestion occurs due to an increase in communication traffics in a network. Quality of media data being transmitted deteriorates noticeably due to this congestion. Examples of a technique for preventing such deterioration in quality of media data include techniques as described below.  
         [0004]     As the technique, for example, there is a system using a redundant code such as a Forward Error Correction (FEC) system. In addition, as the technique, there is a system using retransmission such as an Automatic Repeat Request (ARQ).  
         [0005]     In the FEC system, parity information of media data is generated and sent on a transmission side, whereby, even in the case where a packet loss occurs on a reception side, it becomes possible to perform restoration of the lost packet.  
         [0006]     In the ARQ system, when the packet loss is detected on the reception side, the reception side requests a transmission side to retransmit the lost packet, and the transmission side retransmits the lost packet, whereby it becomes possible to prevent deterioration in quality of media data.  
         [0007]     Further, in the best-effort transmission line environment, conventionally, the deterioration in the quality of the media data due to the packet loss is prevented by the following techniques: a technique that switches between the FEC system, which is effective for a stationary packet loss, and the ARQ system, which is effective for a burst packet loss; and a technique that uses a combination of the FEC system and the ARQ system (e.g., see patent documents 1 and 2).  
         [0008]     Note that, as other related art to the retransmitted invention, for example, there are techniques disclosed in patent documents 3 to 5 described below.  
         [0009]     [Patent Document 1] 
         [0010]     Japanese Patent Application Laid-Open Publication No. 7-67175  
         [0011]     [Patent Document 2] 
         [0012]     Japanese Patent Application Laid-Open Publication No. 2002-330118  
         [0013]     [Patent Document 3] 
         [0014]     Japanese Patent Application Laid-Open Publication No. 9-214474  
         [0015]     [Patent Document 4] 
         [0016]     Japanese Patent Application Laid-Open Publication No. 9-298526  
         [0017]     [Patent Document 5] 
         [0018]     Japanese Patent Application Laid-Open Publication No. 2000-228676  
       SUMMARY OF THE INVENTION  
       [0019]     However, in those techniques, for example, there are problems as described below.  
         [0020]     First, in the technique of switching the FEC system and the ARQ system, the FEC system and the ARQ system are switched using feedback information from the reception side. However, in the best-effort transmission line environment in which plural apparatuses are interconnected, it is difficult to estimate communication traffics by other apparatuses. Therefore, the above techniques may not be able to cope with congestion that occurs suddenly.  
         [0021]     In addition, in the case where the FEC system and the ARQ system are combined, there is a problem in that transmission bands increase due to an increase in retransmission, which adversely affects other communication traffics. In particular, when congestion occurs, the packet loss occurs suddenly (in a burst-like manner). Thus, when retransmission is performed in this state, transmission bands increase. As a result, a state of a transmission line is further deteriorated. Therefore, with the technique, a retransmitted packet is lost and the effect of the ARQ is not exhibited.  
         [0022]     The retransmitted invention has been devised in view of the problems described above. It is a primary object of the invention to provide a technique of, in the event that a loss has occurred with respect to a packet sent into a transmission line, compensating for the loss efficiently. In addition, it is a secondary object of the invention to provide a technique for controlling congestion in a transmission line that is caused by retransmitting data compensating for the transmitted packet.  
         [0023]     To solve the above-mentioned problems, the present invention adopts the following means. That is, the present invention may be specified as a transmission apparatus, including: a communication unit performing transmission and reception of an encoded data packet with other terminals; a redundant code generating unit generating a redundant code associated with the data packet for restoring a loss of the data packet; a redundant code control unit controlling a band used for the redundant code; a buffer for retransmission accumulating retransmission packets that are retransmitted to the other terminals at a time of the loss of the data packet; a retrieval unit retrieving a corresponding retransmission packet from the buffer for retransmission when receiving a retransmission request for the data packet from the other terminals; a retransmission control unit controlling a band used for retransmission that is used at a time of transmission of the retransmission packet; and a band control unit controlling the bandwidth of a redundant code based on the band used for retransmission and a band used for the redundant code.  
         [0024]     In the invention, in order to compensate for data lost at the time of transmission of an encoded data packet, the transmission apparatus performs control to keep the sum of a band used for retransmission and a band used for the redundant code at a constant amount at the time of transmitting redundant code data and retransmission data.  
         [0025]     Therefore, according to the present invention, it is possible to provide a technique for, in the event that a loss has occurred with respect to a packet sent into a transmission line, compensating for the loss efficiently.  
         [0026]     Further, according to the present invention, the band control unit may instruct the redundant code control unit to reduce the bandwidth of the redundant code based on the band used for retransmission.  
         [0027]     Further, according to the present invention, after reducing the bandwidth of redundant codes based on the band used for retransmission, the band control unit may instruct the redundant code control unit to increase the bandwidth.  
         [0028]     In this way, in the invention, an amount of information to be associated with a data packet can be controlled according to a condition in a transmission line, whereby bands in the transmission line can be used effectively.  
         [0029]     In addition, in the invention, the redundant code generating unit generates a redundant code packet, and the band control unit may control the bandwidth of the redundant code by controlling an insertion interval of the redundant code packet at the time of retransmission of the data packet.  
         [0030]     Further, according to the present invention, the band control unit may set a threshold value for each or both of the band used for retransmission of the data packet and the band used for the redundant code, and when the band used for retransmission and the band used for the redundant code exceed the threshold value, the band control unit may stop the retransmission of the data packet and the generation of the redundant code.  
         [0031]     In this way, according to the present invention, it is possible to provide a technique for controlling congestion in a transmission line that is caused by retransmitting data compensating for a transmitted packet.  
         [0032]     Further, the present invention may be specified as a transmission apparatus comprising: a communication unit performing transmission and reception of an encoded data packet with other terminals; a redundant code generating unit generating a redundant code for restoring a loss of the data packet; a redundant code control unit controlling a band used for transmission of the redundant code; a buffer for retransmission accumulating retransmission packets that are retransmitted to the other terminals at a time of the loss of the data packet; a retrieval unit retrieving a corresponding retransmission packet from the buffer for retransmission when receiving a retransmission request for the data packet from the other terminals; a retransmission control unit controlling a band used for retransmission that is used at a time of transmission of the retransmission packet; and a band control unit controlling a transmission ratio of the redundant code based on the band used for retransmission and a band used for transmission of the redundant code.  
         [0033]     Note that, the invention may be implemented a program realizing any one of the functions described above. In addition, in the invention, such a program may be recorded in a computer readable storage medium. Further, the invention may be implemented as a method of realizing any one of the functions described above.  
         [0034]     According to the invention as described above, such an excellent effect that it is possible to provide a technique for, in the event that a loss has occurred with respect to a packet sent into a transmission line, compensating for the loss efficiently is provided. In addition, the invention can also provide a technique for controlling congestion in a transmission line that is caused by retransmitting data compensating for a transmitted packet. 
     
    
     DESCRIPTION OF THE DRAWINGS  
       [0035]      FIG. 1  is a block diagram showing functions of a transmission apparatus in accordance with an embodiment of the invention;  
         [0036]      FIG. 2  is a diagram showing an example of processing for keeping the sum of a band used by a retransmission packet and a band used by redundant codes at a fixed amount with the transmission apparatus;  
         [0037]      FIG. 3  is a diagram showing an example of a band width of an entire transmission band in the event that bands used by redundant code data and retransmission data exceed a threshold value;  
         [0038]      FIG. 4  is a block diagram showing functions of a transmission apparatus in a processing example in accordance with the embodiment;  
         [0039]      FIG. 5  is an explanatory diagram showing a structure of an RTP header in the processing example;  
         [0040]      FIG. 6  is a diagram showing a method of generating FEC parity information in the processing example;  
         [0041]      FIG. 7  is a diagram showing a structure of an FEC header in the processing example;  
         [0042]      FIG. 8  is a diagram showing a structure of an FEC packet in the processing example; and  
         [0043]      FIG. 9  is a diagram showing a structure of a retransmission request packet in the processing example. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0044]     A best mode for carrying out the invention will be hereinafter explained with reference to the drawings.  
         [0045]     Constitutions of embodiments to be described below are examples, and the invention is not limited to the constitutions of the embodiments.  
         [0046]     Apparatus Structure of a Transmission Apparatus  
         [0047]     A functional structure of a transmission apparatus of the invention will be explained with reference to the drawings.  
         [0048]      FIG. 1  is a block diagram illustrating a functional structure of the transmission apparatus of the invention. A transmission apparatus  10  of the invention encodes data such as inputted streaming information (hereinafter also referred to as media data). Thereafter, the transmission apparatus  10  packetizes the encoded media data. Then, the transmission apparatus  10  transmits the packetized media data (packet data) into a network. This transmitted packet data is received by a terminal desiring to obtain this data. In addition, in the even that a loss has occurred in the sent media data, the transmission apparatus  10  retransmits the media data in response to a request from a reception side. Moreover, in the event that a loss has occurred in the sent media data, the transmission apparatus  10  transmits redundant code data compensating for the loss. Note that the transmission apparatus  10  in accordance with this embodiment is realized by various computers in which a transmission control program causing a computer to execute a transmission method of the invention is installed.  
         [0049]     The transmission apparatus  10  in accordance with this embodiment includes an encoding unit  11 , a packtizer  12 , a data transmission unit  13  (equivalent to a communication unit of the invention), a redundant code generating unit  14 , a redundant code transmission unit  15  (equivalent to the communication unit of the invention), a redundant code control unit  16 , a buffer for retransmission  17 , a retransmission request receiving unit  18  (equivalent to the communication unit of the invention), a retransmission unit  19  (equivalent to the communication unit of the invention), a retransmission control unit  20 , a feedback receiving unit  21  (equivalent to the communication unit of the invention) and a band control unit  22 .  
         [0050]     The encoding unit  11  encodes the media data. The packetizer  12  packetizes the media data encoded by the encoding unit  11 . The data transmission unit  13  transmits the media data packetized by the packetizer  12  to a client.  
         [0051]     The redundant code generating unit  14  generates a redundant code packet that is used in the event that a loss has occurred in the sent media data. The redundant code transmission unit  15  transmits the redundant code packet generated by the redundant code generating unit  14  to the client.  
         [0052]     The redundant code control unit  16  controls a band that is used by redundant codes to be sent. The buffer for retransmission  17  accumulates packets of media data for retransmission. The retransmission request receiving unit  18  receives a retransmission request for the data packet from a client (reception side) terminal.  
         [0053]     The retransmission control unit  20  receives the retransmission request for the data packet from the client terminal, retrieves a corresponding retransmission packet from the buffer for retransmission  17 , and transmits the retransmission packet to the retransmission unit  19 . The retransmission unit  19  transmits this retransmission packet to client. In addition, the retransmission control unit  20  controls a band used by the retransmission packet.  
         [0054]     The feedback receiving unit  21  receives feedback information such as a packet loss ratio from the client terminal. The band control unit  22  determines transmission bands for all data to be sent including media data, retransmission packets, and redundant code data from the feedback information received by the feedback receiving unit  21 . In addition, the band control unit  22  controls (manages) the transmission band of all the data to be sent.  
         [0055]     With the functions described above, in the case where a redundant code system and a retransmission system are combined in compensating for a loss that occurs at the time of transmission of the encoded data, the transmission apparatus  10  keeps the sum of a band used by retransmission packets and a band used by redundant codes at a constant amount.  
         [0056]      FIG. 2  shows an example of processing for keeping the sum of a band used by retransmission packets and a band used by redundant codes at a constant amount with the transmission apparatus  10 .  FIG. 2  shows a change of a ratio between redundant code data  2  and retransmission data  3  in an entire transmission band  4  for data including media data  1 . Accordingly, when the transmission apparatus  10  transmits the retransmission data  3  with respect to a loss of the media data  1  (a position of I in  FIG. 2 ), the transmission apparatus  10  reduces an attachment ratio of the redundant codes  2 . With this processing, the transmission apparatus  10  can transmit the redundant code data  2  and the retransmission data  3 , which compensate for the loss that has occurred in the media data  1 , while maintaining a band width of the entire transmission band  4 .  
         [0057]     In order to perform the processing, the retransmission control unit  20  of the transmission apparatus  10  sequentially notifies the band control unit  22  of bands used for retransmission. The band control unit  22 , which has received the band used for retransmission, sequentially instructs the redundant code control unit  16  to reduce the attachment ratio of the redundant code data  2  according to an amount of information in the band used for retransmission. In addition, the transmission apparatus  10  reduces insertion of redundant code packets (widens an insertion interval of redundant code packets) to thereby reduce the attachment ratio of the redundant code data  2  when retransmission of media data has occurred.  
         [0058]     In addition, with the functions described above, after reducing the attachment ratio of the redundant code data according to a band used for the retransmission of the media data, the transmission apparatus  10  returns the attachment ratio of the redundant code data to an original ratio. In a position of II in  FIG. 2 , the redundant code data  2 , which was reduced to maintain the band width of the entire transmission band including the transmission data  3  in the position of I, is returned to an original band width when the transmission of the retransmission data  3  ends.  
         [0059]     In order to realize the processing described above, the band control unit  22  instructs the redundant code control unit  16  to reduce the attachment ratio of the redundant code data  2  according to the band to be used by the retransmission data  3  that are sequentially notified from the retransmission control unit  20 . Then, after the transmission of the retransmission data  3 , the band control unit  22  instructs the redundant code control unit  16  to return the attachment ratio of the redundant code data  2  to the original ratio. In this case, the transmission apparatus  10  returns the insertion interval of the redundant code packets to the original insertion interval to thereby return the attachment ratio of redundant codes to the original ratio.  
         [0060]     In addition, a redundant code to be sent by the transmission apparatus  10  use a redundant code packet to which parity information among plural packets is attached. Therefore, even if a packet loss has occurred on the Internet, the transmission apparatus  10  is capable of recovering the lost packet using this redundant code packet.  
         [0061]     Moreover, with the function described above, in the event that the band used for retransmission of media data and the band used by redundant codes exceed a threshold value, the transmission apparatus  10  stops the retransmission of the media data and the attachment of the redundant codes.  
         [0062]      FIG. 3  is an example showing a band width of the entire transmission band  4  in the case where bands used by the redundant code data  2  and the retransmission data  3  have exceeded a threshold value. In  FIG. 3 , the redundant code data  2  and retransmission data  3   a  are attached to the entire transmission band  4  together with the media data  1 . In this case, in the event that retransmission data  3   b  is further attached (III in  FIG. 3 ), the band control unit  22  stops attaching the redundant code data  2  and the retransmission data  3   a  and  3   b.    
         [0063]     When the band control unit  22  stops the attachment of the redundant code data  2  and the transmission data  3   a  and  3   b , a free band  5  is formed in the entire transmission band. By providing this free band  5 , it becomes possible to prevent a situation where a transmission line is further deteriorated by an increase in transmission bands due to retransmission at the time when congestion has occurred. Then, after the condition in the transmission line has improved (IV in  FIG. 3 ), the band control unit  22  resumes the attachment of the redundant code data  2 .  
         [0064]     Example of Processing by the Transmission Apparatus  
         [0065]     As an example of processing by the transmission apparatus of this embodiment, a case in which moving picture code data of MPEG-2 (Moving Picture Experts Group phase  2 ) is transmitted by an RTP (Real-time Transport Protocol) will be explained using the drawings.  
         [0066]     In this processing example, a feedback mechanism called an RTCP (RTP Control Protocol) specified by RTP as feedback information is used. Note that, as the RTCP, there are a Sender Report (SR), which is sent from a server to a client every fixed time, and a Receiver Report (RR), which is sent from the client to the server every fixed time.  
         [0067]      FIG. 4  is a functional block diagram of a transmission apparatus  100  of this processing example. The transmission apparatus  100  includes a function corresponding to the transmission apparatus  10  explained earlier. The transmission apparatus  100  includes an encoding unit  101  (corresponding to the encoding unit  11 ), a packetizer  102  (corresponding to the packetizer  12 ), an RTP sensing unit  103  (corresponding to the data transmission unit  13 , the redundant code transmission unit  15 , and the retransmission unit  19 ), an FEC (Forward Error Correction) generating unit  104  (corresponding to the redundant code generating unit  14 ), a buffer for retransmission  105  (corresponding to the buffer for retransmission  17 ), a band control unit  106  (corresponding to the band control unit  22 ), an RTCP transmission and receiving unit  107  (corresponding to the retransmission request receiving unit  18  and the feedback receiving unit  21 ), and a retransmission control unit  108  (corresponding to the retransmission control unit  20 ).  
         [0068]     Redundant Code Processing in this Processing Example  
         [0069]     Processing using a redundant code of this processing example will be explained using  FIG. 4 . The transmission apparatus  100  attaches an FEC packet (redundant code data) in advance to media data that is encoded by the encoding unit  101 , and transmits the media data to a client terminal.  
         [0070]     The encoding unit  101  applies encoding of MPEG-2 to inputted media data (e.g., moving picture data) (S 101 ). The encoded media data is sent to the packetizer  102  (S 102 ). The packetizer  102  packetizes this media data.  
         [0071]     The packetizer  102  transmits the packetized media data to the RTP transmission unit  103  (S 103 ). The RTP transmission unit  103  attaches an RTP header to the media data and transmits the media data to a client through the Internet (S 104 ).  
         [0072]      FIG. 5  is an example of the RTP header to be attached to the media data. The RTP header is constituted by the following information. V (2 bits) indicates a version of the RTP (here, version 2). P (1 bit) indicates the number of bytes padded (attached) to the end of an RTP packet. X (1 bit) indicates whether the RTP header has an extension header just behind the RTP header (here, the extension header is not used). CC (4 bits) indicates the number of CSRCs (contribution source identifier) included in the RTP header. M (1 bit) indicates a marker bit and indicates a boundary of application data. In this processing example, for example, in the case of an MPEG-4 moving picture, M is “1” at the time of the last packet in one frame.  
         [0073]     PT (7 bits) is a payload type and indicates an encoding system for the application data. Sequence Number (16 bits) indicates a transmission order of packets. This Sequence Number is used for identifying individual packets. Natural numbers to be given in the transmission order of packets are placed in the field of Sequence Number.  
         [0074]     TimeStamp (32 bits) indicates the time at which the first byte of the packet was sent. SSRC (synchronous sender identifier) (32 bits) indicates a sender of the packet. CSRC contribution source identifier) (32 bits) indicates a host that has prepared the packet.  
         [0075]     After the media data is sent, a copy of a packet of the media data is stored in the buffer for retransmission  105  as retransmission data (S 105 ).  
         [0076]     In addition, the band control unit  106  determines an entire transmission band and a transmission band of FEC using information (S 108 ) sent from the RTCP transmission and receiving unit  107 . In this case, as information to be used for the determination, for example, there are a packet loss ratio and jitter included in a Receiver Report (S 106 ), which is sent from the client every fixed time. In addition, as other information to be used for the determination, for example, there are a Sender Report (S 107 ), which is sent from the server side every fixed time, and a round trip time (RTT), which is calculated using the Receiver Report. Note that it is desirable to use an existing determination method as a specific method of determining a transmission band.  
         [0077]     When the entire transmission band is determined, the band control unit  106  determines the transmission band of FEC in accordance with information on a packet loss included in the Receiver Report.  
         [0078]     As the FECpacket used in this processing example, for example, a packet defined in RFC2733 “An RTP Payload Format for Generic Forward Error Correction” is used. In RFC2733, an FEC packet, for which a parity of the entire packet is calculated, is provided for plural RTP packets. Thus, according to RFC2733, when a packet loss has occurred, a lost packet can be restored using the FEC packet. Note that, in RFC2733, it is recommended to attach at least one FEC packet to twenty-four RTP packets.  
         [0079]     The generation of the FEC packet is performed as described below. The packetizer  102  duplicates a generated encoded data packet. The packetizer  102  transmits the duplicated encoded data packet to a buffer for FEC generation (not shown) in the FEC generating unit  104  (S 109 ).  
         [0080]     Thereafter, when a predetermined quantity of packets (e.g., twenty-four packets) are accumulated in the buffer for FEC generation, the FEC generating unit  104  generates parity information in accordance with a transmission band of FEC (S 110 ) instructed by the band control unit  106 .  
         [0081]      FIG. 6  shows an example of processing for generating parity information by the FEC generating unit  104  in this processing example. For example, in the case where the transmission band of FEC is 25%, the FEC generating unit  104  generates six FEC packets for twenty-four RTP packets.  
         [0082]     In other words, the parity information generated by the FEC generating unit  104  is generated by calculating an exclusive OR by a unit of bit of the respective RTP packets.  
         [0083]      FIG. 7  shows an example of an FEC header generated by the FEC generating unit  104 . The FEC header is constituted by the following information. SN Base indicates an offset number of a sequence number of an RTP packet to be the object of FEC processing. Length recovery indicates parity information on a length of the RTP packet. E indicates whether extension of the RTP header is performed (here, E is not set because header extension is not performed). PT recovery indicates parity information on a PT bit. Mask indicates the RTP packet to be the object of the FEC processing. TS recovery indicates parity information on TimeStamp of the RTP packet.  
         [0084]      FIG. 8  shows an example of an FEC packet generated by the FEC generating unit  104 . The FEC generating unit  104  generates an FEC packet to which an FEC header and an RTP header are attached. Generated parity information is attached to this FEC packet. Information on FEC (FEC Recovery) is included in the FEC packet other than the RTP header and FEC header information.  
         [0085]     The RTP packet to be the object of the FEC processing is defined by the FEC generating unit, for example, as described below. First, it is assumed that an i-th bit in a Mask bit of the twenty-four packets from SN base is “1”. In this case, an (SN Base+I)-th packet is the RTP packet to be the object of the FEC processing. The FEC generating unit  104  transmits the FEC packet generated in this way to the RTP transmission unit  103  (Sill). In addition, the FEC generating unit  104  notifies the band control unit  106  of a band to be used by the FEC packet (S 113 ). The band control unit  106  controls a band used by retransmission data to be described later according to the band to be used by the FEC packet (S 114 ).  
         [0086]     The RTP transmission unit  103  transmits this FEC packet together with the RTP packet (S 112 ).  
         [0087]     Retransmission Processing of this Processing Example  
         [0088]     Next, a flow of processing at the time of retransmission in this processing example will be explained. The RTCP transmission and receiving unit  107  receives a retransmission request packet (S 115 ).  
         [0089]      FIG. 9  shows an example of the retransmission request packet in this processing example. For example, the following information is included in the retransmission request packet. V (2 bits) indicates a version of the RTP. Here, V is “2”. P (1 bit) is a flag indicating whether the end of a packet is padded. In this processing example, P is “1” because padding is performed. Subtype (5 bits) indicates an arbitrary subtype. In this processing example, Subtype is set to “4” indicating the retransmission request packet. PT (8 bits) indicates a payload type. Here, PT is set to a fixed value “204” that is determined according to an APP packet of the RTCP. Length (16 bits) indicates a length of the retransmission request packet. SSRC (32 bits) indicates an SSRC (synchronous sender identifier) on the transmission side of the retransmission request packet. NAME (32 bits) is arbitrary ASCII characters uniquely given to this packet peculiarly. Here, NAME is set to “RREQ”. A sequence number for identifying a packet of lost media data is placed in RID (16 bits). Padding (16 bits) is “2” because a last octet indicates the number of paddings (octet unit). Therefore, a value of Padding in this processing example is (0×0002).  
         [0090]     The RTCP transmission and receiving unit  107 , which has received the retransmission request packet, acquires a sequence number of a packet for which retransmission is requested, from the retransmission request packet. Then, the RTCP transmission and receiving unit  107  notifies the retransmission control unit  108  of the acquired sequence number together with a retransmission request (S 116 ).  
         [0091]     The retransmission control unit  108  retrieves an RTP packet corresponding to the notified sequence number from the buffer for retransmission  105  (S 117 ). The retransmission control unit  108  transmits the RTP packet with PTin the header replaced to the RTP transmission unit  103  as a retransmission packet (S 118 ).  
         [0092]     The retransmission control unit  108  notifies the band control unit  106  of a size of the retransmission packet simultaneously with transmitting the retransmission packet to the RTP transmission unit  103  (S 119 ).  
         [0093]     The band control unit  106  has a retransmission counter (not shown) that records the number of times retransmission is performed. The band control unit  106  increments this retransmission counter by one every time retransmission of media data is performed. Then, the band control unit  106  notifies the FEC generating unit  104  to change an insertion interval of the FEC packet based on a value of this retransmission counter (S 120 ).  
         [0094]     The notification of an insertion interval of the FEC packet is performed, for example, as described below. When a value of the retransmission counter is larger than 0, the band control unit  106  notifies the FEC generating unit  104  to transmit the FEC packet at the insertion interval twice as large as an initial value. Then, after transmitting the FEC packet at the interval twice as large as the initial value, the band control unit  106  decrements the retransmission counter by one. If the retransmission counter changes to 0 as a result of decrementing a value of the retransmission counter, the band control unit  106  notifies the FEC generating unit  104  to return the insertion interval of the FEC packet to the initial value.  
         [0095]     In addition, the band control unit  106  has a threshold value counter (not shown) indicating upper limits of bands to be used by the FEC packet and the retransmission packet. This threshold value counter compares an upper limit value of a bandwidth, which indicates how many bits of the FEC packet and the retransmission packet can be sent per one second, with the current bands. A value of the threshold value counter is reset to the initial value at every predetermined interval (e.g., every one second).  
         [0096]     In this processing example, in order not to change the entire transmission band, a band used by the FEC determined by the band control unit  106  is set as an initial value of the threshold value counter.  
         [0097]     The band control unit  106  decrements a numerical value corresponding to a transmission size from the threshold value counter every time the FEC packet and the retransmission packet are sent. If the threshold value counter changes to 0 as a result of this decrementing, the band control unit  106  notifies the FEC generating unit  104  and the retransmission control unit  108  to stop the transmission of the FEC packet and the retransmission packet (S 121 , S 114 ) Upon receiving the notification to stop the transmission, if the retransmission counter is larger than 0, the retransmission control unit  108  resets the value to zero.  
         [0098]     After issuing an instruction to stop the transmission or after a predetermined time interval has elapsed, the band control unit  106  resets a value of the threshold value counter (return a value of the threshold value to the initial value). After it is confirmed that the threshold value counter has been reset, the FEC generating unit  104  transmits again the FEC packet with its insertion interval returned to the initial value (S 111 ).  
         [0099]     Effects of this Embodiment  
         [0100]     According to the method and apparatus for transmitting media data in accordance with this embodiment, it is possible to perform error correction for media data efficiently without affecting other communication traffics when congestion has occurred on the best-effort Internet (IP/UDP) or a radio transmission line.  
         [0101]     In addition, according to the transmission apparatus and the transmission method in accordance with this embodiment, bands in a transmission line can be utilized effectively.  
         [0102]     Further, according to the transmission apparatus and the transmission method in accordance with this embodiment, compensation for media data can be performed effectively while suppressing inconveniences such as congestion caused by data compensating for a loss of transmitted media data.