JP2008060658A - Buffer controller and control method - Google Patents

Buffer controller and control method Download PDF

Info

Publication number
JP2008060658A
JP2008060658A JP2006231899A JP2006231899A JP2008060658A JP 2008060658 A JP2008060658 A JP 2008060658A JP 2006231899 A JP2006231899 A JP 2006231899A JP 2006231899 A JP2006231899 A JP 2006231899A JP 2008060658 A JP2008060658 A JP 2008060658A
Authority
JP
Japan
Prior art keywords
buffer
data
length
amount
accumulation amount
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006231899A
Other languages
Japanese (ja)
Other versions
JP4730259B2 (en
Inventor
Hiroyuki Yamada
浩之 山田
Toyokazu Sugai
豊和 菅井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2006231899A priority Critical patent/JP4730259B2/en
Publication of JP2008060658A publication Critical patent/JP2008060658A/en
Application granted granted Critical
Publication of JP4730259B2 publication Critical patent/JP4730259B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To obtain a data transfer unit in which delay time of data transfer is minimized without increasing the data discard rate by performing buffer management for setting a minimum buffer length adaptively. <P>SOLUTION: The buffer controller comprises a means for monitoring the amount of data accumulated in a buffer for accumulating and outputting the input data, a timing generation means for generating a period for monitoring the amount of the data accumulated in the buffer, a means for calculating an effective buffer length based on the minimum amount of the data accumulated in the buffer monitored during the above-period, and a means for controlling the buffer based on the effective buffer length calculated by the buffer length calculation means. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

この発明は、バッファ制御装置およびバッファ制御方法に関するものである。 The present invention relates to a buffer control device and a buffer control method.

従来のバッファ制御装置において、通常、バッファは固定長(固定サイズ)で設けられ、FIFO(First In First Out)方式を採用して、バッファ内データ量がバッファ長(バッファサイズ)を超えないようにデータ廃棄が行われている。出力データ容量が入力データ量以上の場合は、低遅延でデータが出力されるが、出力データ容量が入力データ量より小さくなる状態が続く場合は、入力データがバッファから出力されるまでの待ち時間(遅延時間)が増大していき、やがてバッファ内データ量がバッファ長に達すると、オーバーフロー、すなわちデータ廃棄が起こる。   In conventional buffer control devices, the buffer is usually provided with a fixed length (fixed size), and a FIFO (First In First Out) method is adopted so that the amount of data in the buffer does not exceed the buffer length (buffer size). Data is being discarded. If the output data capacity is greater than or equal to the input data volume, the data is output with a low delay, but if the output data capacity continues to be smaller than the input data volume, the waiting time until the input data is output from the buffer When (delay time) increases and eventually the amount of data in the buffer reaches the buffer length, overflow, that is, data discard occurs.

そこで、バッファやデータ転送の状況に合わせて適応的に動作するバッファ制御として、例えば、特許文献1に開示されるような映像フレーム間隔の平均ジッタ量に応じてバッファ長を適応的に制御するリアルタイムバッファ制御がある。   Therefore, as buffer control that operates adaptively according to the buffer and data transfer conditions, for example, real-time control that adaptively controls the buffer length according to the average jitter amount of the video frame interval as disclosed in Patent Document 1. There is buffer control.

また、エンコーダを有する装置のバッファ制御では、例えば、特許文献2に開示されるように、バッファの有効サイズを伝送ビット速度とともに変更し、符号化速度を変えることで充填レベルを制限範囲内に維持して一定遅延の伝送を行う。   In the buffer control of an apparatus having an encoder, for example, as disclosed in Patent Document 2, the effective size of the buffer is changed together with the transmission bit rate, and the filling level is maintained within the limited range by changing the encoding rate. Then, transmission with a certain delay is performed.

特開2005−322995号公報(第5頁〜第7頁、図1)Japanese Patent Laying-Open No. 2005-322995 (pages 5 to 7, FIG. 1) 特表平8−510628号公報(第25頁〜第28頁、図4)JP-T 8-510628 (pages 25 to 28, FIG. 4)

従来のバッファ制御では、データを転送する際に、バッファがオーバーフローしないように制御するものであり、バッファ長固定の場合、バッファの出力データ容量に対して入力データ量が大きいときには、バッファ内データ量が最大でバッファ長まで増大し、データがバッファに入力されてからバッファから出力されるまでに時間がかかるため、データ転送の遅延時間の抑制を図ることができないという問題点があった。   In conventional buffer control, when data is transferred, the buffer is controlled so as not to overflow. When the buffer length is fixed, the amount of data in the buffer is large when the input data amount is larger than the output data capacity of the buffer. However, there is a problem in that it is impossible to suppress the delay time of data transfer because it takes a long time from when data is input to the buffer until it is output from the buffer.

また、出力データ容量に対して入力データ量が小さいときでも、ジッタへの対処として意図的にバッファ内にデータを滞留させる制御を行っているため、データ転送の遅延時間の抑制を図ることができないという問題点があった。   Even when the amount of input data is small relative to the output data capacity, control of intentionally retaining data in the buffer is performed as a countermeasure for jitter, so it is not possible to suppress the delay time of data transfer. There was a problem.

この発明は、上述のような課題を解決するためになされたもので、バッファのオーバーフローによるデータ廃棄率を上昇させずに、データ転送の遅延時間の抑制を図ることを目的とする。   The present invention has been made to solve the above-described problems, and an object of the present invention is to suppress the data transfer delay time without increasing the data discard rate due to buffer overflow.

この発明に係るバッファ制御装置およびバッファ制御方法は、入力データの蓄積および出力を行うバッファに蓄積されたデータの蓄積量を監視するバッファ状態監視手段と、このバッファ状態監視手段によりバッファのデータ蓄積量を監視する期間を発生するタイミング発生手段と、このタイミング発生手段により発生した期間において、バッファ状態監視手段により監視されたバッファのデータ蓄積量における最小データ蓄積量に基づいて有効バッファ長を算出するバッファ長算出手段と、バッファ長算出手段が算出した有効バッファ長に基づいてバッファを制御するバッファ制御手段とを備えたものである。   The buffer control device and the buffer control method according to the present invention include a buffer state monitoring means for monitoring the amount of data stored in a buffer for storing and outputting input data, and a data storage amount of the buffer by the buffer state monitoring means. And a buffer for calculating an effective buffer length based on a minimum data storage amount in the data storage amount of the buffer monitored by the buffer state monitoring means during the period generated by the timing generation unit. Length calculating means and buffer control means for controlling the buffer based on the effective buffer length calculated by the buffer length calculating means are provided.

この発明によれば、バッファ状態に応じた適応的な有効バッファ長でバッファを制御することができ、バッファのオーバーフローによるデータ廃棄率を上昇させずに、データ転送の遅延時間の抑制を図ることができる効果がある。   According to the present invention, the buffer can be controlled with an adaptive effective buffer length corresponding to the buffer state, and the data transfer delay time can be suppressed without increasing the data discard rate due to buffer overflow. There is an effect that can be done.

この発明に係るバッファ制御装置は、バッファの状態、すなわちデータ蓄積量を監視し、ある期間に観測された最小データ蓄積量に基づいて、その次の期間におけるバッファの有効バッファ長を設定するバッファ制御処理を行うものである。この有効バッファ長は、物理的に十分な蓄積容量をもつバッファに対して、この蓄積容量を超えない長さで、期間ごとに設定されるデータ蓄積に使用する最大蓄積許容量を示す。以下、説明中の「バッファ長」は、この有効バッファ長を指すものとする。   The buffer control device according to the present invention monitors the buffer state, that is, the data accumulation amount, and sets the effective buffer length of the buffer in the next period based on the minimum data accumulation amount observed in a certain period. The processing is performed. The effective buffer length indicates a maximum storage allowable amount used for data storage set for each period with a length not exceeding the storage capacity for a buffer having a physically sufficient storage capacity. Hereinafter, “buffer length” in the description refers to this effective buffer length.

このバッファ長を適切に設定することで、バッファへのデータ入出力の状態に適さない必要以上に大きいバッファ長が設定されることによるデータの出力遅延を抑制する。また、バッファのデータ蓄積量がバッファ長を超えるとき、蓄積データの一部を廃棄するバッファ制御を行う。以下、バッファへの入出力データを動画像データとして、この発明に係るバッファ制御装置に係るバッファ制御処理について説明を行う。   By appropriately setting the buffer length, a data output delay caused by setting a buffer length larger than necessary that is not suitable for the state of data input / output to the buffer is suppressed. Further, when the amount of data stored in the buffer exceeds the buffer length, buffer control is performed to discard a part of the stored data. Hereinafter, buffer control processing according to the buffer control device according to the present invention will be described using input / output data to / from the buffer as moving image data.

実施の形態1.
この発明の実施の形態1では、バッファに動画像データ(以下、データという)が蓄積されて転送遅延が大きくなるとデータを画像フレーム(以下、フレームという)単位に廃棄するとともに、ある期間の終了時に、その終了した期間のバッファ長と最小データ蓄積量とに基づいて算出したバッファ長を、次の期間のバッファ長として設定するバッファ制御装置について説明する。
Embodiment 1 FIG.
In Embodiment 1 of the present invention, when moving image data (hereinafter referred to as data) is accumulated in the buffer and transfer delay increases, the data is discarded in units of image frames (hereinafter referred to as frames), and at the end of a certain period. A buffer control device that sets the buffer length calculated based on the buffer length and the minimum data accumulation amount in the completed period as the buffer length in the next period will be described.

図1は、この発明の実施の形態1に係るバッファ制御装置の一例を示すブロック構成図である。このブロック構成図に基づいて、各構成要素の機能を説明する。   FIG. 1 is a block diagram showing an example of a buffer control apparatus according to Embodiment 1 of the present invention. Based on this block diagram, the function of each component will be described.

図1において、バッファ状態監視手段110は、入力データの蓄積および出力を行うバッファ101に蓄積されたデータ蓄積量を監視する。このバッファ状態監視手段110は、バッファ101に蓄積されたデータ蓄積量を検知する状態検知手段111と、この状態検知手段111が検知したバッファ101に蓄積されたデータ蓄積量を記憶する状態記憶手段112とから構成されている。   In FIG. 1, a buffer state monitoring unit 110 monitors the amount of data stored in a buffer 101 that stores and outputs input data. The buffer state monitoring unit 110 includes a state detection unit 111 that detects the amount of data accumulated in the buffer 101, and a state storage unit 112 that stores the amount of data accumulated in the buffer 101 detected by the state detection unit 111. It consists of and.

次に、タイミング発生手段121は、このバッファ状態監視手段110によりバッファ101のデータ蓄積量を監視する期間を発生する。このタイミング発生手段121が発生するタイミング、すなわち期間境界(区切り)に、バッファ状態監視手段110内部の状態記憶手段112に記憶されるデータ蓄積量が初期化される。   Next, the timing generation unit 121 generates a period during which the buffer state monitoring unit 110 monitors the data accumulation amount of the buffer 101. The accumulated data amount stored in the state storage unit 112 in the buffer state monitoring unit 110 is initialized at the timing at which the timing generation unit 121 is generated, that is, at a period boundary (break).

また、バッファ長算出手段131は、このタイミング発生手段121により発生した期間において、バッファ状態監視手段110により監視されたバッファ101のデータ蓄積量における最小データ蓄積量に基づいて有効なバッファ長を算出する。   Further, the buffer length calculation unit 131 calculates an effective buffer length based on the minimum data accumulation amount in the data accumulation amount of the buffer 101 monitored by the buffer state monitoring unit 110 during the period generated by the timing generation unit 121. .

また、バッファ制御手段140は、このバッファ長算出手段131が算出したバッファ長に基づいてバッファ101を制御する。このバッファ制御手段140は、バッファ101の蓄積データからフレームを検出するフレーム検出手段141と、新しい期間に入るときにバッファ長算出手段131が算出したバッファ長を再設定し、このバッファ長の再設定によってその時点のデータ蓄積量がバッファ長を超えてオーバーフローするとき、または期間中でもバッファ監視手段110が検知したバッファ101のデータ蓄積量がバッファ長を超えてオーバーフローするとき、フレーム検出手段141が検出したフレーム単位に蓄積データの一部を廃棄してバッファ長に収まるように制御を行うデータ廃棄手段142とから構成されている。なお、期間中にオーバーフローしてもバッファ長の再設定は行わないものとする。また、このバッファ制御手段140がバッファ101にバッファ長を設定することで、バッファ101がバッファ長に基づいてデータ蓄積量を制御するものとして説明したが、バッファ制御手段140がバッファ長に基づいてバッファ101に対しデータ蓄積量を制御する構成としても構わない。   Further, the buffer control unit 140 controls the buffer 101 based on the buffer length calculated by the buffer length calculation unit 131. The buffer control unit 140 resets the frame length calculated by the buffer length calculation unit 131 when the frame detection unit 141 detects a frame from the accumulated data of the buffer 101 and enters a new period, and resets the buffer length. When the data storage amount at that time overflows beyond the buffer length or when the data storage amount of the buffer 101 detected by the buffer monitoring unit 110 overflows beyond the buffer length even during the period, the frame detection unit 141 detects The data discarding unit 142 performs control so that a part of the accumulated data is discarded in units of frames and fits in the buffer length. Note that the buffer length is not reset even if it overflows during the period. Further, the buffer control unit 140 sets the buffer length in the buffer 101 so that the buffer 101 controls the data accumulation amount based on the buffer length. However, the buffer control unit 140 performs buffering based on the buffer length. The data storage amount may be controlled with respect to 101.

以下では、期間内のバッファ101のデータ蓄積量における最小データ蓄積量は、図1におけるバッファ状態監視手段110内部の状態検知手段111および状態記憶手段112、バッファ長算出手段131の間で、次のように管理されるものとする。状態検知手段111は、バッファ101に蓄積されたデータ蓄積量を検知する。状態記憶手段112は、タイミング発生手段121からの期間開始のタイミングを知らされると、その時点でバッファ101に蓄積されているデータ蓄積量、すなわち状態検知手段111に検知されたデータ蓄積量を最小データ蓄積量とする初期化を行い、次の期間開始のタイミングまでの期間内に状態検知手段111に検知されたデータ蓄積量がその最小データ蓄積量を下回るとそのデータ蓄積量を最小データ蓄積量として更新して記憶する。この結果、バッファ長算出手段131は、期間内に状態記憶手段112が記憶した最小データ蓄積量を得てバッファ長の算出を行うことができる。   In the following, the minimum data accumulation amount in the data accumulation amount of the buffer 101 within the period is the following between the state detection unit 111 and the state storage unit 112 and the buffer length calculation unit 131 in the buffer state monitoring unit 110 in FIG. Shall be managed as follows. The state detection unit 111 detects the amount of data stored in the buffer 101. When the state storage unit 112 is informed of the timing of the period start from the timing generation unit 121, the state storage unit 112 minimizes the data storage amount stored in the buffer 101 at that time, that is, the data storage amount detected by the state detection unit 111. When the data accumulation amount is initialized and the data accumulation amount detected by the state detection unit 111 within the period until the start of the next period falls below the minimum data accumulation amount, the data accumulation amount is reduced to the minimum data accumulation amount. Update and store as As a result, the buffer length calculation unit 131 can calculate the buffer length by obtaining the minimum data accumulation amount stored by the state storage unit 112 within the period.

次に、この発明の実施の形態1に係るバッファ制御装置のバッファ101のデータ蓄積量とバッファ長に基づくバッファ制御の動作について説明する。まず、基本的なバッファ制御の概要を説明する。   Next, the buffer control operation based on the data accumulation amount and the buffer length of the buffer 101 of the buffer control device according to the first embodiment of the present invention will be described. First, an outline of basic buffer control will be described.

図2は、この発明の実施の形態1に係るバッファ制御装置のバッファへのデータ蓄積量とバッファ長の関係の一例を示す説明図である。横軸が時間経過(時刻)を示し、縦軸にその時刻におけるデータ蓄積量を示している。タイミング発生手段121が発生する期間は、等間隔でなくても構わないが、ここでは等間隔の時間Tごととする。以下、各期間の開始時刻(n−2)T、(n−1)T、nT、(n+1)Tに基づいて期間(n−2)、期間(n−1)、期間n、期間(n+1)と称して区別するものとする。   FIG. 2 is an explanatory diagram showing an example of the relationship between the amount of data stored in the buffer and the buffer length of the buffer control device according to the first embodiment of the present invention. The horizontal axis indicates time (time), and the vertical axis indicates the amount of data stored at that time. The period in which the timing generation unit 121 is generated may not be equally spaced, but here it is every time interval T. Hereinafter, based on the start time (n−2) T, (n−1) T, nT, and (n + 1) T of each period, the period (n−2), the period (n−1), the period n, and the period (n + 1) ) To distinguish.

ここで、BufferSizeは、バッファ101のバッファ長を示し、BufferSize(n)はバッファ長算出手段131により算出される期間nにおけるバッファ長である。なお、バッファ長BufferSize(n)は、期間n内は一定値に固定される。また、DataSizeは、バッファ101のデータ蓄積量を示し、DataSize(n)はバッファ状態監視手段110により監視される期間nの各時刻において変化していくデータ蓄積量である。そして、DataSizeMinは、バッファ101の最小データ蓄積量を示し、DataSizeMin(n)はバッファ状態監視手段110が監視する期間nにおいてデータ蓄積量DataSize(n)がとる最小データ蓄積量である。   Here, BufferSize indicates the buffer length of the buffer 101, and BufferSize (n) is the buffer length in the period n calculated by the buffer length calculation unit 131. The buffer length BufferSize (n) is fixed to a constant value during the period n. DataSize indicates the data accumulation amount of the buffer 101, and DataSize (n) is the data accumulation amount that changes at each time of the period n monitored by the buffer state monitoring unit 110. DataSizeMin indicates the minimum data storage amount of the buffer 101, and DataSizeMin (n) is the minimum data storage amount taken by the data storage amount DataSize (n) in the period n monitored by the buffer state monitoring unit 110.

バッファ長算出手段131は、例えば、期間nにおけるバッファ長BufferSize(n)を、その前の期間(n−1)に設定されたバッファ長BufferSize(n-1)および期間(n−1)の終了時点(時刻nT)における最小データ蓄積量DataSizeMin(n-1)に基づいて算出する。最小データ蓄積量DataSizeMin(n-1)は、期間(n−1)の開始時点(時刻(n−1)T)のデータ蓄積量を初期値として、図2の下方寄りの太い破線のように時間経過とともに変化する。バッファ長BufferSize(n-1)と最小データ蓄積量DataSizeMin(n-1)とに基づくバッファ長BufferSize(n)の算式を次式1に示す。   For example, the buffer length calculation unit 131 sets the buffer length BufferSize (n) in the period n to the buffer length BufferSize (n-1) set in the previous period (n-1) and the end of the period (n-1). It is calculated based on the minimum data accumulation amount DataSizeMin (n-1) at the time (time nT). The minimum data accumulation amount DataSizeMin (n-1) is as indicated by a thick broken line on the lower side of FIG. 2, with the data accumulation amount at the start time (time (n-1) T) of the period (n-1) as an initial value. It changes with time. Formula 1 of the buffer length BufferSize (n) based on the buffer length BufferSize (n-1) and the minimum data accumulation amount DataSizeMin (n-1) is shown in the following formula 1.

Figure 2008060658
Figure 2008060658

最初に計算した仮のバッファ長tmpは、期間(n−1)のバッファ長BufferSize(n-1)から最小データ蓄積量DataSizeMin(n-1)のデータ蓄積量相当をバッファ長の縮小可能サイズとし、定数Kだけデータのゆらぎの吸収に対する余裕を持たせたものである。この定数Kは、縮小可能サイズである最小データ蓄積量DataSizeMin(n-1)が0となるアンダーフローが発生するとき、バッファ長バッファ長BufferSize(n)を拡大させるように機能する。なお、バッファ長算出手段131が算出するバッファ長のとる値の範囲は、最小バッファ長BufferSizeMIN以上最大バッファ長BufferSizeMAX以下となるようにする。この式1で用いた定数K、最小バッファ長BufferSizeMIN、最大バッファ長BufferSizeMAXは、あらかじめ設定しておいても、あるいは図1のバッファ長算出手段131に示した破線矢印の入力信号線のように外部から設定できるようにしても構わない。   The temporary buffer length tmp calculated first is the size that can be reduced by reducing the buffer length from the buffer length BufferSize (n-1) of the period (n-1) to the minimum data storage amount DataSizeMin (n-1). , A constant K is given a margin for absorbing data fluctuations. This constant K functions to increase the buffer length buffer length BufferSize (n) when an underflow occurs in which the minimum data storage amount DataSizeMin (n−1), which is a size that can be reduced, occurs. It should be noted that the range of the value taken by the buffer length calculated by the buffer length calculation means 131 is set to be not less than the minimum buffer length BufferSizeMIN and not more than the maximum buffer length BufferSizeMAX. The constant K, the minimum buffer length BufferSizeMIN, and the maximum buffer length BufferSizeMAX used in Equation 1 may be set in advance or externally as indicated by the broken line arrow input signal lines shown in the buffer length calculation means 131 of FIG. It may be possible to set from the following.

以上のような算出方法により、図2に例示した期間nの各時刻におけるバッファ101のデータ蓄積量DataSize(n)が変化していったとき、バッファ長算出手段131はバッファ長を次のように算出していく。ここでは、定数Kを1とする。   When the data accumulation amount DataSize (n) of the buffer 101 at each time in the period n illustrated in FIG. 2 is changed by the calculation method as described above, the buffer length calculation unit 131 sets the buffer length as follows. Calculate. Here, the constant K is 1.

まず、期間(n−2)におけるバッファ長BufferSize(n-2)は8としている。この期間内におけるデータ蓄積量DataSize(n-2)の最小データ蓄積量DataSizeMin(n-2)は、時刻(n−1)Tで0となっており、次の期間(n−1)におけるバッファ長BufferSize(n-1)は、(BufferSize(n-2)−DataSizeMin(n-2)+K)から9となる。次に、期間(n−1)内におけるデータ蓄積量DataSize(n-1)の最小データ蓄積量DataSizeMin(n-1)は、時刻nTで2.5となっており、次の期間nにおけるバッファ長BufferSize(n)は7.5となる。また、期間n内におけるデータ蓄積量DataSize(n)の最小データ蓄積量DataSizeMin(n)は、時刻(n+1)Tで1.5となっており、次の期間(n+1)におけるバッファ長BufferSize(n+1)は7となる。   First, the buffer length BufferSize (n-2) in the period (n-2) is set to 8. The minimum data storage amount DataSizeMin (n-2) of the data storage amount DataSize (n-2) in this period is 0 at time (n-1) T, and the buffer in the next period (n-1). The length BufferSize (n-1) is 9 from (BufferSize (n-2) -DataSizeMin (n-2) + K). Next, the minimum data storage amount DataSizeMin (n-1) of the data storage amount DataSize (n-1) within the period (n-1) is 2.5 at time nT, and the buffer in the next period n The length BufferSize (n) is 7.5. Further, the minimum data storage amount DataSizeMin (n) of the data storage amount DataSize (n) within the period n is 1.5 at time (n + 1) T, and the buffer length BufferSize (n in the next period (n + 1) +1) becomes 7.

次に、この実施の形態1に係るバッファ制御装置におけるバッファ制御処理手順とその動作の一例を図3のフローチャートに基づいて説明する。   Next, an example of the buffer control processing procedure and its operation in the buffer control device according to the first embodiment will be described based on the flowchart of FIG.

図3において、Aで示す破線枠で囲んだ処理は、データ入力に関する部分を示す。一般には、入力するデータ長をあらかじめヘッダなどから確認してオーバーフローが起きないときに、バッファ101に到着したデータを入力する手順で構成しても構わない。ただし、この手順では、オーバーフローが起きるときには入力データは受信できず、データを廃棄し、蓄積データの送信によりバッファ101に空きを増やして受信に備えて待つことになる。そこで、このデータ入力に関する手順では、最大バッファ長BufferSizeMAXをバッファ101の物理的な蓄積容量よりも、例えば、1フレームのデータ分程度だけ小さく設定しておき、1フレームの入力データの受信に対する余裕を残しておき、一時的にオーバーフローしてもすでに蓄積されたデータを廃棄することでバッファ101に入力しかけたデータのフレームの入力は完了させる構成とする。この構成は、1フレーム分の2次バッファをバッファ101の受信側の前段に持つことによっても実現できる。以下、データ入力を実現するこの2つの構成例のうち、後者をとるものとして説明する。   In FIG. 3, the process surrounded by the broken line frame indicated by A indicates a portion related to data input. In general, the procedure may be configured to input the data that has arrived at the buffer 101 when the input data length is confirmed in advance from a header or the like and no overflow occurs. However, in this procedure, when overflow occurs, the input data cannot be received, and the data is discarded and the buffer 101 is made free by transmitting the stored data and waiting for reception. Therefore, in this data input procedure, the maximum buffer length BufferSizeMAX is set to be smaller than the physical storage capacity of the buffer 101 by, for example, about one frame of data, and a margin for receiving one frame of input data is set. The configuration is such that the input of the frame of data that has already been input to the buffer 101 is completed by discarding the already accumulated data even if it temporarily overflows. This configuration can also be realized by having a secondary buffer for one frame in the preceding stage on the receiving side of the buffer 101. Hereinafter, of the two configuration examples for realizing data input, the latter will be described.

バッファ101は、バッファ長とデータ蓄積量に基づいて、バッファ101へデータの入力が可能か否かを判定する(ステップST101)。データの入力が可能であるとき(Yes)には、バッファ101は、データを入力する(ステップST102)。バッファ状態監視手段110は、バッファ101でデータ入力によるオーバーフローの発生を確認する(ステップST103)。オーバーフローが発生していることが確認できたとき(Yes)には、バッファ制御手段140は、バッファ101からデータ廃棄を行う(ステップST104)。また、ステップST103で、バッファ入力によるオーバーフローが発生していないことが確認できたとき(No)には、データ廃棄(ステップST104)は行わず、スキップする。ステップST102またはステップST104でバッファに蓄積されるデータ蓄積量が変化するので、バッファ状態監視手段110は、減少に伴うバッファ状態(データ蓄積量)を更新する(ステップ105)。   The buffer 101 determines whether data can be input to the buffer 101 based on the buffer length and the data accumulation amount (step ST101). When data can be input (Yes), the buffer 101 inputs data (step ST102). The buffer state monitoring means 110 confirms the occurrence of overflow due to data input in the buffer 101 (step ST103). When it is confirmed that an overflow has occurred (Yes), the buffer control means 140 discards data from the buffer 101 (step ST104). When it is confirmed in step ST103 that no overflow has occurred due to buffer input (No), data discard (step ST104) is not performed and skipped. Since the data storage amount stored in the buffer in step ST102 or step ST104 changes, the buffer state monitoring unit 110 updates the buffer state (data storage amount) associated with the decrease (step 105).

一方、ステップST101で、データの入力が可能ではなかったとき(No)には、データ入力(ステップST102)およびデータ廃棄(ステップST103〜ST104)はともに行わず、さらに、バッファ状態(データ蓄積量)の更新(ステップST105)も不要となるので、これらのステップはスキップする。   On the other hand, when it is not possible to input data in step ST101 (No), neither data input (step ST102) nor data discard (steps ST103 to ST104) is performed, and the buffer status (data storage amount) (Step ST105) is also unnecessary, so these steps are skipped.

なお、オーバーフローが発生して、データ廃棄を行う(ステップST104および後述のステップST112)ときには、バッファ制御手段140内部のデータ廃棄手段142は、フレーム検出手段141が検出した最も古いフレームを優先して行っても、最も新しいフレームを優先しても構わない。また、最も古いフレームが送出過程にあって不完全な状態であれば、その直後に送出予定の完全なフレームをデータ廃棄の対象としてもよい。あるいは、最も新しいフレームが蓄積過程にあって不完全な状態であれば、それより前に蓄積した完全なフレームをデータ廃棄の対象としてもよい。さらに、例えば、連続した複数のフレームをまとめて廃棄する場合、不連続が大きくなることが好ましくなければ、蓄積されたフレームを適当な間隔で間引いて廃棄して不連続感を和らげても構わない。   When data is discarded when overflow occurs (step ST104 and step ST112 described later), the data discarding unit 142 in the buffer control unit 140 prioritizes the oldest frame detected by the frame detection unit 141. However, the newest frame may be prioritized. If the oldest frame is in the transmission process and is in an incomplete state, the complete frame scheduled to be transmitted immediately after that may be the target of data discard. Alternatively, if the latest frame is in an accumulation process and is in an incomplete state, a complete frame accumulated before that may be a target of data discard. Furthermore, for example, when discarding a plurality of consecutive frames at a time, if it is not preferable that the discontinuity is large, the accumulated frames may be thinned out at an appropriate interval and discarded to ease the discontinuity. .

次に、図3において、Bで示す破線枠で囲んだ処理は、データ出力に関する部分を示す。バッファ101は、バッファ101からデータの出力が可能か否かを判定する(ステップST106)。データの出力が可能であるとき(Yes)には、データがバッファ101から出力される(ステップST107)。データが出力されることで、バッファ101に蓄積されるデータ蓄積量が減少するので、バッファ状態監視手段110は、減少に伴うバッファ状態(データ蓄積量)を更新する(ステップST108)。一方、ステップST106で、データの出力が可能ではなかったとき(No)には、データ出力(ステップST107)およびバッファ状態(データ蓄積量)の更新(ステップST108)は行わず、これらのステップはスキップする。   Next, in FIG. 3, processing surrounded by a broken line frame indicated by B indicates a portion related to data output. The buffer 101 determines whether data can be output from the buffer 101 (step ST106). When the data can be output (Yes), the data is output from the buffer 101 (step ST107). Since the amount of data stored in the buffer 101 decreases due to the output of data, the buffer state monitoring unit 110 updates the buffer state (data storage amount) associated with the decrease (step ST108). On the other hand, when data output is not possible in step ST106 (No), data output (step ST107) and buffer state (data accumulation amount) update (step ST108) are not performed, and these steps are skipped. To do.

さらに、図3において、Cで示す破線枠で囲んだ処理は、新たなバッファ長の算出と設定に関する部分を示す。タイミング発生手段121がバッファ状態監視手段110によるバッファ状態(データ蓄積量)を監視する期間(監視期間)が終了したか否かを判定する(ステップST109)。監視期間が終了したとき(Yes)、バッファ状態監視手段110はバッファの状態を検知する(ステップST110)。バッファ長算出手段131は、バッファ状態監視手段110が検知したバッファ状態(データ蓄積量)を参照してバッファ長を算出する(ステップST111)。バッファ制御手段140は、バッファ長算出手段131が算出したバッファ長をバッファ101に設定する(ステップST112)。このとき、バッファ長の設定により、ステップST110においてバッファ状態監視手段110が検知した現状のバッファ101のバッファ状態(データ蓄積量)が、設定するバッファ長を超えてしまっているならば、蓄積データの一部を廃棄してバッファ長に収める制御(ステップST104相当のデータ廃棄)も行う。ステップST110からステップST112の処理後、タイミング発生手段121は、監視期間を初期化して次の監視期間に入る(ステップST113)。一方、ステップST109で、監視期間が終了していなかったとき(No)には、バッファの状態の検知(ステップST110)、バッファ長の算出(ステップST111)、バッファ長の設定する(ステップST112)および監視期間の初期化(ステップST113)は行わず、これらのステップはスキップする。   Further, in FIG. 3, processing surrounded by a broken line frame indicated by C indicates a part related to calculation and setting of a new buffer length. It is determined whether or not the period (monitoring period) during which the timing generation unit 121 monitors the buffer state (data accumulation amount) by the buffer state monitoring unit 110 has ended (step ST109). When the monitoring period ends (Yes), the buffer status monitoring unit 110 detects the buffer status (step ST110). The buffer length calculating unit 131 calculates the buffer length with reference to the buffer state (data accumulation amount) detected by the buffer state monitoring unit 110 (step ST111). Buffer control means 140 sets the buffer length calculated by buffer length calculation means 131 in buffer 101 (step ST112). At this time, if the buffer state (data storage amount) of the current buffer 101 detected by the buffer state monitoring unit 110 in step ST110 exceeds the set buffer length by setting the buffer length, the stored data is stored. A control for discarding a part and putting it in the buffer length (data discard corresponding to step ST104) is also performed. After the processing from step ST110 to step ST112, the timing generator 121 initializes the monitoring period and enters the next monitoring period (step ST113). On the other hand, when the monitoring period has not expired in step ST109 (No), detection of the buffer status (step ST110), calculation of the buffer length (step ST111), setting of the buffer length (step ST112) and The monitoring period is not initialized (step ST113), and these steps are skipped.

以上のように、図3におけるデータ入力、データ出力、バッファ長の算出と設定からなる処理手順により、バッファ制御が行われる。さらに、次に示す図4は、図3におけるステップST111のバッファ長の算出手順およびステップST112のバッファ長の設定手順の動作の一例をより詳しく説明するフローチャートである。   As described above, buffer control is performed according to the processing procedure including data input, data output, and buffer length calculation and setting in FIG. Further, FIG. 4 shown next is a flowchart for explaining in more detail an example of the operation of the buffer length calculation procedure in step ST111 and the buffer length setting procedure in step ST112 in FIG.

図4において、Dで示す破線枠で囲んだ処理は、図3におけるステップST111に相当するバッファ長算出手段131が行う上記式1に示したバッファ長算出に関する部分を示す。まず、バッファ長算出手段131は、仮のバッファ長tmpを、期間(n−1)に設定したバッファ長BufferSize(n-1)および最小データ蓄積量DataSizeMin(n-1)の差分に定数Kを加えた値とする(ステップST201)。   In FIG. 4, the process enclosed by the broken line frame indicated by D indicates a portion related to the buffer length calculation shown in the above equation 1 performed by the buffer length calculation means 131 corresponding to step ST111 in FIG. 3. First, the buffer length calculation means 131 sets the temporary buffer length tmp as a difference between the buffer length BufferSize (n-1) set for the period (n-1) and the minimum data accumulation amount DataSizeMin (n-1). The added value is set (step ST201).

次に、仮のバッファ長tmpと最大バッファ長BufferSizeMAXを比較する(ステップST202)。仮のバッファ長tmpが最大バッファ長BufferSizeMAXより大きいとき(Yes)には、仮のバッファ長tmpを最大バッファ長BufferSizeMAXに更新する(ステップST203)。   Next, the temporary buffer length tmp is compared with the maximum buffer length BufferSizeMAX (step ST202). When the temporary buffer length tmp is larger than the maximum buffer length BufferSizeMAX (Yes), the temporary buffer length tmp is updated to the maximum buffer length BufferSizeMAX (step ST203).

一方、ステップST202で、仮のバッファ長tmpが最大バッファ長BufferSizeMAX未満のとき(No)には、仮のバッファ長tmpと最小バッファ長BufferSizeMINを比較する(ステップST204)。仮のバッファ長tmpが最小バッファ長BufferSizeMIN未満のとき(Yes)には、仮のバッファ長tmpを最小バッファ長BufferSizeMINに更新する(ステップST205)。なお、ステップST204で、仮のバッファ長tmpが最小バッファ長BufferSizeMIN以上のとき(No)には、仮のバッファ長tmpは、ステップST203およびステップST205ともにスキップして、ステップST201で算出した値のままとする。   On the other hand, when the temporary buffer length tmp is less than the maximum buffer length BufferSizeMAX (No) in step ST202, the temporary buffer length tmp is compared with the minimum buffer length BufferSizeMIN (step ST204). When the temporary buffer length tmp is less than the minimum buffer length BufferSizeMIN (Yes), the temporary buffer length tmp is updated to the minimum buffer length BufferSizeMIN (step ST205). In step ST204, when the temporary buffer length tmp is equal to or larger than the minimum buffer length BufferSizeMIN (No), the temporary buffer length tmp is skipped in both step ST203 and step ST205 and remains the value calculated in step ST201. And

このように、仮のバッファ長tmpは、ステップST201で算出したままの値、ステップST203で更新した値、またはステップST205で更新した値のいずれかをとることになり、期間nのバッファサイズBufferSize(n)として設定される(ステップST206)。   Thus, the temporary buffer length tmp takes one of the value as calculated in step ST201, the value updated in step ST203, or the value updated in step ST205, and the buffer size BufferSize ( n) is set (step ST206).

次に、図4において、Eで示す破線枠で囲んだ処理は、図3におけるステップST112に相当するバッファ制御手段140が行うバッファ制御に関する部分を示す。まず、バッファ制御手段140は、これらのステップST201からステップST206を処理した時点でのバッファ状態であるデータ蓄積量DataSize(n)とステップST206で設定された新しいバッファサイズBufferSize(n)を比較する(ステップST207)。このデータ蓄積量DataSize(n)は、期間nにおけるデータ蓄積量の初期値となるもので、図3のステップST110にてバッファ状態監視手段110が検知した期間(n−1)終了時点のバッファ状態(データ蓄積量)である。このデータ蓄積量DataSize(n)がバッファサイズBufferSize(n)より大きいとき(Yes)には、データ蓄積量DataSize(n)から廃棄するデータ蓄積量Cancelを減じて該当する蓄積データの部分を更新する(ステップST208)。このデータ蓄積量DataSize(n)から廃棄するデータ蓄積量Cancelは、ここではフレーム検出手段141が検出したフレーム単位に基づいて設定され、データ廃棄手段142が該当するフレームを廃棄する。なお、ステップST207で、データ蓄積量DataSize(n)がバッファサイズBufferSize(n)以下であれば、ステップST208をスキップして、データ蓄積量DataSize(n)は更新せず、そのままとする。   Next, in FIG. 4, the process enclosed by a broken line frame indicated by E indicates a part related to buffer control performed by the buffer control means 140 corresponding to step ST112 in FIG. 3. First, the buffer control means 140 compares the data accumulation amount DataSize (n), which is the buffer state at the time of processing from step ST201 to step ST206, with the new buffer size BufferSize (n) set in step ST206 ( Step ST207). This data accumulation amount DataSize (n) is an initial value of the data accumulation amount in the period n, and the buffer state at the end of the period (n−1) detected by the buffer state monitoring unit 110 in step ST110 of FIG. (Data accumulation amount). When this data accumulation amount DataSize (n) is larger than the buffer size BufferSize (n) (Yes), the data accumulation amount Cancel is subtracted from the data accumulation amount DataSize (n) to update the corresponding accumulated data portion. (Step ST208). The data accumulation amount Cancel to be discarded from the data accumulation amount DataSize (n) is set here based on the frame unit detected by the frame detection means 141, and the data discarding means 142 discards the corresponding frame. If the data accumulation amount DataSize (n) is equal to or smaller than the buffer size BufferSize (n) in step ST207, step ST208 is skipped and the data accumulation amount DataSize (n) is not updated and is left as it is.

そして、この時点でのデータ蓄積量DataSize(n)を次の期間nにおけるバッファ状態の最小データ蓄積量DataSizeMin(n)の初期値として設定する(ステップST209)。なお、この後、期間n内に、バッファ101のデータ蓄積量DataSize(n)が最小データ蓄積量DataSizeMin(n)を下回ると、最小データ蓄積量DataSizeMin(n)はデータ蓄積量DataSize(n)に更新される。   Then, the data accumulation amount DataSize (n) at this time is set as an initial value of the minimum data accumulation amount DataSizeMin (n) in the buffer state in the next period n (step ST209). Thereafter, when the data storage amount DataSize (n) of the buffer 101 falls below the minimum data storage amount DataSizeMin (n) within the period n, the minimum data storage amount DataSizeMin (n) becomes the data storage amount DataSize (n). Updated.

以上の手順により、この発明の実施の形態1に係るバッファ制御装置のバッファ長の算出および設定と、バッファのデータ蓄積量の制御が行われる。   With the above procedure, the calculation and setting of the buffer length and the control of the data accumulation amount of the buffer are performed by the buffer control device according to the first embodiment of the present invention.

なお、状態記憶手段112は、単一の期間内のバッファ状態、すなわちデータ蓄積量を記憶するだけの場合には、バッファ長更新を示す期間のタイミングで、記憶されるデータ蓄積量をリセットすればよい。ここで記憶されるデータ蓄積量は、最小データ蓄積量だけとしても構わない。   Note that if the state storage unit 112 only stores the buffer state within a single period, that is, the data storage amount, the state storage unit 112 may reset the stored data storage amount at the timing of the period indicating the buffer length update. Good. The data accumulation amount stored here may be only the minimum data accumulation amount.

また、これまでバッファ長算出に使用するバッファ状態は、単一の期間に記憶されたデータ蓄積量を使用するものとして説明したが、複数の期間にわたって記憶されたデータ蓄積量を使用するものであっても構わない。この発明の実施の形態1においては、複数の期間にわたって記憶する際には、各期間データ蓄積量とともに、バッファ長も併せて記憶し、上記式1により各期間のバッファ長を算出した後、複数の期間のバッファ長に基づいてバッファに設定すべきバッファ長を算出するものとする。ここで記憶される過去の期間分のデータ蓄積量は、最小データ蓄積量だけとしても構わない。   In the above description, the buffer state used for calculating the buffer length has been described as using the data storage amount stored in a single period. However, the buffer state used in the plurality of periods is used. It doesn't matter. In Embodiment 1 of the present invention, when storing data over a plurality of periods, the buffer length is stored together with the data accumulation amount for each period, and after calculating the buffer length for each period by the above equation 1, It is assumed that the buffer length to be set in the buffer is calculated based on the buffer length during the period. The data accumulation amount for the past period stored here may be only the minimum data accumulation amount.

例えば、バッファ長を算出する期間として過去N期間分の間、バッファ長およびデータ蓄積量を記憶して参照する場合には、その記憶した期間ごとに各期間番号とバッファ長およびデータ蓄積量を対応付けて履歴を記憶しておき、参照対象外になった期間番号のバッファ長およびデータ蓄積量は消去していけばよい。過去N期間分のバッファ長およびデータ蓄積量の履歴を用いる際には、例えば、各期間のバッファ長およびデータ蓄積量の履歴から求まるバッファ長に対して、より新しい期間で算出されたバッファ長の重みを大きくする加重平均や相加平均などにより算出することで複数の期間のバッファ長およびデータ蓄積量の履歴を反映させたバッファ長の更新値を求めてもよい。なお、過去分については、バッファ長およびデータ蓄積量を記憶するのではなく、加重平均や相加平均していないその単一期間で算出されたバッファ長の履歴だけを記憶して、複数の期間におけるそれらの単一期間のバッファ長に基づいて、加重平均や相加平均した符号長をバッファに設定するようにしても構わない。   For example, when storing and referring to the buffer length and data accumulation amount for the past N periods as the period for calculating the buffer length, each period number corresponds to the buffer length and data accumulation amount for each stored period. In addition, the history may be stored, and the buffer length and the data accumulation amount of the period number that is not referred to may be deleted. When using the buffer length and data accumulation history for the past N periods, for example, the buffer length calculated in a newer period than the buffer length obtained from the buffer length and data accumulation history for each period. An update value of the buffer length reflecting the buffer lengths of a plurality of periods and the history of the data accumulation amount may be obtained by calculating with a weighted average or an arithmetic average that increases the weight. For the past, instead of storing the buffer length and data accumulation amount, only the buffer length history calculated for that single period that is not weighted average or arithmetic average is stored, and multiple periods are stored. Based on the buffer lengths of those single periods, the weighted average or arithmetic average code length may be set in the buffer.

このようにして、この発明の実施の形態1に係るバッファ制御装置は、直近のバッファ状態に基づいて、期間ごとにバッファ長を制御していくことで、適応的に最適なバッファ長でバッファを動作させることができ、必要以上に大き過ぎるバッファ長や少な過ぎるバッファ長を設定することがなくなり、データ廃棄率を必要以上に上昇させず、かつデータ転送の遅延時間を抑制することができる。   In this way, the buffer control device according to the first embodiment of the present invention controls the buffer length for each period based on the latest buffer state, thereby adaptively buffering the buffer with the optimal buffer length. It is possible to operate, and it is no longer necessary to set an excessively large buffer length or an excessively small buffer length, the data discard rate is not increased more than necessary, and the data transfer delay time can be suppressed.

また、バッファ長の算出時に定数Kを加えることで、データ転送の揺らぎに対する一時的な蓄積量の増大を吸収し、データ廃棄を少なくすることができる。また、定数Kを加えることで、バッファの蓄積データにアンダーフローが発生するとき、次の期間のバッファ長を拡大して、データ蓄積量を多く保持できるようにすることができる。   Further, by adding a constant K when calculating the buffer length, it is possible to absorb a temporary increase in the amount of accumulation due to fluctuations in data transfer and to reduce data discard. Further, by adding the constant K, when underflow occurs in the accumulated data in the buffer, the buffer length in the next period can be expanded so that a large amount of data can be retained.

実施の形態2.
この発明の実施の形態2では、バッファに動画像データ(以下、データという)が蓄積されて転送遅延が大きくなるとデータを画像フレーム(以下、フレームという)単位に廃棄するとともに、ある期間の終了時に、その終了した期間のデータ蓄積量の最大データ蓄積量と最小データ蓄積量に基づいて算出したバッファ長を、次の期間のバッファ長として設定するバッファ制御装置について説明する。この発明の実施の形態2は、この発明の実施の形態1とはバッファ長の算出に係る部分が異なり、他の基本的な機能、動作は、この発明の実施の形態1の機能、動作と同様である。以下では、特に、この発明の実施の形態2におけるバッファ長の算出の仕方について説明する。
Embodiment 2. FIG.
In Embodiment 2 of the present invention, when moving image data (hereinafter referred to as data) is accumulated in the buffer and transfer delay increases, the data is discarded in units of image frames (hereinafter referred to as frames), and at the end of a certain period. A buffer control device that sets the buffer length calculated based on the maximum data storage amount and the minimum data storage amount of the data storage amount during the ended period as the buffer length of the next period will be described. The second embodiment of the present invention differs from the first embodiment of the present invention in the part relating to the calculation of the buffer length, and other basic functions and operations are the same as the functions and operations of the first embodiment of the present invention. It is the same. In the following, a method for calculating the buffer length in the second embodiment of the present invention will be described in particular.

この発明の実施の形態2に係るバッファ制御装置の一例を示すブロック構成図、およびバッファ状態監視手段110の内部の詳細構成の一例は、図1によって、この発明の実施の形態1に示したものと同様に説明できる。よって、バッファ状態監視手段110、タイミング発生手段121、バッファ長算出手段131およびバッファ制御手段140の説明は、省略する。ただし、この発明の実施の形態2に係るバッファ制御装置では、この発明の実施の形態1におけるに係るバッファ制御装置で必要としたバッファ101のデータ蓄積量における最小データ蓄積量に加え、最大データ蓄積量についてもバッファ長の算出に必要になる。   A block configuration diagram showing an example of a buffer control apparatus according to Embodiment 2 of the present invention, and an example of a detailed internal configuration of buffer state monitoring means 110, are shown in Embodiment 1 of the present invention with reference to FIG. It can be explained in the same way. Therefore, descriptions of the buffer status monitoring unit 110, the timing generation unit 121, the buffer length calculation unit 131, and the buffer control unit 140 are omitted. However, in the buffer control device according to the second embodiment of the present invention, the maximum data accumulation in addition to the minimum data accumulation amount in the data accumulation amount of the buffer 101 required in the buffer control device according to the first embodiment of the present invention. The amount is also necessary for calculating the buffer length.

バッファ101のデータ蓄積量の監視期間中、オーバーフローが発生したときには、バッファ長算出手段131によるバッファ長の算出で使用される最大データ蓄積量はバッファ長として扱う。オーバーフローが発生した時点で、状態検知手段111がバッファ101のバッファ長を超えたデータ蓄積量をバッファ長として状態記憶手段112に通知しても記憶させてもよいし、また状態記憶手段112は状態検知手段111がバッファ長を超えるデータ蓄積量を通知してくるとバッファ長として記憶してもよく、バッファ長算出手段131は最大データ蓄積量としてその時点のバッファ長を使用する。また、状態検知手段111がバッファ長を超えるデータ蓄積量を検知し、状態記憶手段112はそのデータ蓄積量を記憶し、バッファ長算出手段131が状態記憶手段112に記憶されたバッファ長を超えるデータ蓄積量を検出するとその時点のバッファ長として新たなバッファ長の算出に使用しても構わない。   When an overflow occurs during the monitoring period of the data storage amount of the buffer 101, the maximum data storage amount used in the buffer length calculation by the buffer length calculation means 131 is handled as the buffer length. When the overflow occurs, the state detection unit 111 may notify the state storage unit 112 of the accumulated data amount exceeding the buffer length of the buffer 101 or store it as the buffer length, or the state storage unit 112 may store the state. When the detection unit 111 notifies the data accumulation amount exceeding the buffer length, it may be stored as the buffer length, and the buffer length calculation unit 131 uses the buffer length at that time as the maximum data accumulation amount. Further, the state detection unit 111 detects the data accumulation amount exceeding the buffer length, the state storage unit 112 stores the data accumulation amount, and the buffer length calculation unit 131 stores the data exceeding the buffer length stored in the state storage unit 112. When the accumulated amount is detected, the buffer length at that time may be used for calculating a new buffer length.

以下では、期間内のバッファ101のデータ蓄積量における最大データ蓄積量と最小データ蓄積量は、図1におけるバッファ状態監視手段110内部の状態検知手段111および状態記憶手段112、バッファ長算出手段131の間で、次のように管理されるものとする。状態検知手段111は、バッファ101に蓄積されたデータ蓄積量を検知する。状態記憶手段112は、タイミング発生手段121からの期間開始のタイミングを知らされると、その時点でバッファ101に蓄積されているデータ蓄積量、すなわち状態検知手段111に検知されたデータ蓄積量を最大データ蓄積量と最小データ蓄積量とする初期化を行い、次の期間開始のタイミングまでの期間内に状態検知手段111に検知されたデータ蓄積量がその最大データ蓄積量を上回るとそのデータ蓄積量を最大データ蓄積量として更新して記憶するとともに、状態検知手段111に検知されたデータ蓄積量がその最小データ蓄積量を下回るとそのデータ蓄積量を最小データ蓄積量として更新して記憶する。この結果、バッファ長算出手段131は、期間内に状態記憶手段112が記憶した最大データ蓄積量と最小データ蓄積量を得てバッファ長の算出を行うことができる。   Hereinafter, the maximum data storage amount and the minimum data storage amount in the data storage amount of the buffer 101 within the period are the values of the state detection unit 111, the state storage unit 112, and the buffer length calculation unit 131 inside the buffer state monitoring unit 110 in FIG. It shall be managed as follows. The state detection unit 111 detects the amount of data stored in the buffer 101. When the state storage unit 112 is informed of the timing of the period start from the timing generation unit 121, the state storage unit 112 maximizes the data storage amount stored in the buffer 101 at that time, that is, the data storage amount detected by the state detection unit 111. When the data storage amount and the minimum data storage amount are initialized, and the data storage amount detected by the state detection unit 111 within the period up to the start timing of the next period exceeds the maximum data storage amount, the data storage amount Is updated and stored as the maximum data accumulation amount, and when the data accumulation amount detected by the state detection means 111 falls below the minimum data accumulation amount, the data accumulation amount is updated and stored as the minimum data accumulation amount. As a result, the buffer length calculation unit 131 can calculate the buffer length by obtaining the maximum data accumulation amount and the minimum data accumulation amount stored by the state storage unit 112 within the period.

次に、この発明の実施の形態2に係るバッファ制御装置のバッファ101のデータ蓄積量とバッファ長に基づくバッファ制御の動作について説明する。まず、基本的なバッファ制御の概要を説明する。   Next, the buffer control operation based on the data accumulation amount and the buffer length of the buffer 101 of the buffer control device according to the second embodiment of the present invention will be described. First, an outline of basic buffer control will be described.

図5は、この発明の実施の形態2に係るバッファ制御装置のバッファへのデータ蓄積量とバッファ長の関係の一例を示す説明図である。ここで、バッファ長BufferSize、データ蓄積量DataSize、最小データ蓄積量DataSizeMinは、この発明の実施の形態1において説明した通りである。そして、DataSizeMaxは、バッファ101の最大データ蓄積量を示し、DataSizeMax(n)はバッファ状態監視手段110が監視する期間nにおいてデータ蓄積量DataSize(n)がとる最大データ蓄積量である。   FIG. 5 is an explanatory diagram showing an example of the relationship between the amount of data stored in the buffer and the buffer length of the buffer control device according to the second embodiment of the present invention. Here, the buffer length BufferSize, the data accumulation amount DataSize, and the minimum data accumulation amount DataSizeMin are as described in the first embodiment of the present invention. DataSizeMax indicates the maximum data storage amount of the buffer 101, and DataSizeMax (n) is the maximum data storage amount taken by the data storage amount DataSize (n) in the period n monitored by the buffer state monitoring unit 110.

バッファ長算出手段131は、例えば、期間nにおけるバッファ長BufferSize(n)を、その前の期間(n−1)の終了時点(時刻nT)における最小データ蓄積量DataSizeMin(n-1)および最大データ蓄積量DataSizeMax(n-1)に基づいて算出する。最大データ蓄積量DataSizeMax(n-1)は、先の図2で説明した最小データ蓄積量DataSizeMin(n-1)と同様に、期間(n−1)の開始時点(時刻(n−1)T)のデータ蓄積量を初期値として、図5の上方寄りの太い破線のように時間経過とともに変化する。最小データ蓄積量DataSizeMin(n-1)と最大データ蓄積量DataSizeMax(n-1)とに基づくバッファ長BufferSize(n)の算式を次式2に示す。   For example, the buffer length calculation unit 131 sets the buffer length BufferSize (n) in the period n to the minimum data accumulation amount DataSizeMin (n-1) and the maximum data at the end time (time nT) of the previous period (n-1). Calculation is based on the accumulation amount DataSizeMax (n-1). The maximum data accumulation amount DataSizeMax (n-1) is equal to the start time (time (n-1) T of the period (n-1), similarly to the minimum data accumulation amount DataSizeMin (n-1) described in FIG. ) With the initial value of the data storage amount of), and changes with time as indicated by a thick broken line on the upper side of FIG. The formula of the buffer length BufferSize (n) based on the minimum data accumulation amount DataSizeMin (n-1) and the maximum data accumulation amount DataSizeMax (n-1) is shown in the following equation 2.

Figure 2008060658
Figure 2008060658

最初に計算した仮のバッファ長tmpは、期間(n−1)のバッファ長BufferSize(n-1)から最大データ蓄積量DataSizeMax(n-1)と最小データ蓄積量DataSizeMin(n-1)のデータ蓄積量の差分相当をバッファ長の縮小可能サイズとし、定数Kだけデータのゆらぎの吸収に対する余裕を持たせたものである。なお、バッファ長算出手段131が算出するバッファ長のとる値の範囲は、最小バッファ長BufferSizeMIN以上最大バッファ長BufferSizeMAX以下となるようにする。この式2で用いた定数K、最小バッファ長BufferSizeMIN、最大バッファ長BufferSizeMAXは、あらかじめ設定しておいても、あるいは図1のバッファ長算出手段131に示した破線矢印の入力信号線のように外部から設定できるようにしても構わない。   The temporary buffer length tmp calculated first is the data of the maximum data accumulation amount DataSizeMax (n-1) and the minimum data accumulation amount DataSizeMin (n-1) from the buffer length BufferSize (n-1) of the period (n-1). The difference corresponding to the accumulated amount is set to a reducible size of the buffer length, and a constant K is given a margin for absorbing data fluctuations. It should be noted that the range of the value taken by the buffer length calculated by the buffer length calculation means 131 is set to be not less than the minimum buffer length BufferSizeMIN and not more than the maximum buffer length BufferSizeMAX. The constant K, the minimum buffer length BufferSizeMIN, and the maximum buffer length BufferSizeMAX used in Equation 2 may be set in advance or externally as indicated by the broken arrow input signal lines shown in the buffer length calculation means 131 of FIG. It may be possible to set from the following.

以上のような算出方法により、図5に例示した期間nの各時刻におけるバッファ101のデータ蓄積量DataSize(n)が変化していったとき、バッファ長算出手段131はバッファ長を次のように算出していく。ここでは、定数Kを1とする。   When the data accumulation amount DataSize (n) of the buffer 101 at each time in the period n illustrated in FIG. 5 is changed by the calculation method as described above, the buffer length calculation unit 131 sets the buffer length as follows. Calculate. Here, the constant K is 1.

まず、期間(n−2)におけるバッファ長BufferSize(n-2)は8としている。この期間内におけるデータ蓄積量DataSize(n-2)の最大データ蓄積量DataSizeMax(n-2)および最小データ蓄積量DataSizeMin(n-2)は、時刻(n−1)Tでそれぞれ6と0となっており、次の期間(n−1)におけるバッファ長BufferSize(n-1)は、(DataSizeMax(n-2)−DataSizeMin(n-2)+K)から7となる。次に、期間(n−1)内におけるデータ蓄積量DataSize(n-1)の最大データ蓄積量DataSizeMax(n-1)および最小データ蓄積量DataSizeMin(n-1)は、時刻nTでそれぞれ6.5と2.5となっており、次の期間nにおけるバッファ長BufferSize(n)は5となる。また、期間n内におけるデータ蓄積量DataSize(n)の最大データ蓄積量DataSizeMax(n)および最小データ蓄積量DataSizeMin(n)は、時刻(n+1)Tでそれぞれ4.5と1.5となっており、次の期間(n+1)におけるバッファ長BufferSize(n+1)は4となる。   First, the buffer length BufferSize (n-2) in the period (n-2) is set to 8. The maximum data storage amount DataSizeMax (n-2) and the minimum data storage amount DataSizeMin (n-2) of the data storage amount DataSize (n-2) in this period are 6 and 0 at time (n-1) T, respectively. The buffer length BufferSize (n−1) in the next period (n−1) is 7 from (DataSizeMax (n−2) −DataSizeMin (n−2) + K). Next, the maximum data storage amount DataSizeMax (n-1) and the minimum data storage amount DataSizeMin (n-1) of the data storage amount DataSize (n-1) within the period (n-1) are each 6. 5 and 2.5, and the buffer length BufferSize (n) in the next period n is 5. Further, the maximum data storage amount DataSizeMax (n) and the minimum data storage amount DataSizeMin (n) of the data storage amount DataSize (n) within the period n are 4.5 and 1.5 at time (n + 1) T, respectively. Thus, the buffer length BufferSize (n + 1) in the next period (n + 1) is 4.

次に、この実施の形態2に係るバッファ制御装置におけるバッファ制御処理手順とその動作の一例は、この実施の形態1に係るバッファ制御装置におけるバッファ制御処理手順とその動作を示した図3のフローチャートと同様であるので、説明を省略するが、次に示す図6は、図3におけるステップST111のバッファ長の算出手順およびステップST112のバッファ長の設定手順の動作の一例を、この発明の実施の形態2に係るバッファ制御装置について、より詳しく説明するフローチャートである。   Next, an example of the buffer control processing procedure and its operation in the buffer control device according to the second embodiment is shown in the flowchart of FIG. 3 showing the buffer control processing procedure and its operation in the buffer control device according to the first embodiment. FIG. 6 shown next is an example of the operation of the buffer length calculation procedure in step ST111 and the buffer length setting procedure in step ST112 in FIG. 10 is a flowchart for explaining the buffer control device according to the second embodiment in more detail.

図6において、Fで示す破線枠で囲んだ処理は、図3におけるステップST111に相当するバッファ長算出手段131が行う上記式2に示したバッファ長算出に関する部分を示す。また、Gで示す破線枠で囲んだ処理は、図3におけるステップST112に相当するバッファ制御手段140が行うバッファ制御に関する部分を示す。   In FIG. 6, the process enclosed by a broken line frame indicated by F indicates a portion related to the buffer length calculation shown in the above equation 2 performed by the buffer length calculation means 131 corresponding to step ST111 in FIG. 3. Further, the process surrounded by a broken line frame indicated by G indicates a part related to buffer control performed by the buffer control means 140 corresponding to step ST112 in FIG.

まず、バッファ長算出手段131は、仮のバッファ長tmpを、期間(n−1)にとった最大データ蓄積量DataSizeMax(n-1)および最小データ蓄積量DataSizeMin(n-1)の差分に定数Kを加えた値とする(ステップST301)。なお、ステップST302からステップST308は、図4のフローチャートにおけるステップST202からステップST208と同一処理を行うため、これらの説明を省略する。   First, the buffer length calculation unit 131 sets the temporary buffer length tmp to a difference between the maximum data accumulation amount DataSizeMax (n-1) and the minimum data accumulation amount DataSizeMin (n-1) taken in the period (n-1). A value obtained by adding K (step ST301). Since steps ST302 to ST308 perform the same processing as steps ST202 to ST208 in the flowchart of FIG. 4, their descriptions are omitted.

そして、バッファ長が算出され(ステップST301〜ST306)、バッファ制御が行われた(ステップST307〜ST308)後、この時点でのデータ蓄積量DataSize(n)を次の期間nにおけるバッファ状態の最大データ蓄積量DataSizeMAX(n)および最小データ蓄積量DataSizeMin(n)の初期値として設定する(ステップST309およびステップST310)。なお、この後、期間n内に、バッファ101のデータ蓄積量DataSize(n)が最大データ蓄積量DataSizeMax(n)を上回ると、最大データ蓄積量DataSizeMax(n)はデータ蓄積量DataSize(n)に更新され、また最小データ蓄積量DataSizeMin(n)を下回ると、最小データ蓄積量DataSizeMin(n)はデータ蓄積量DataSize(n)に更新される。   Then, after the buffer length is calculated (steps ST301 to ST306) and the buffer control is performed (steps ST307 to ST308), the data storage amount DataSize (n) at this time is set to the maximum data in the buffer state in the next period n. Set as initial values of the accumulation amount DataSizeMAX (n) and the minimum data accumulation amount DataSizeMin (n) (steps ST309 and ST310). After this, if the data storage amount DataSize (n) of the buffer 101 exceeds the maximum data storage amount DataSizeMax (n) within the period n, the maximum data storage amount DataSizeMax (n) becomes the data storage amount DataSize (n). When it is updated and falls below the minimum data storage amount DataSizeMin (n), the minimum data storage amount DataSizeMin (n) is updated to the data storage amount DataSize (n).

以上の手順により、この発明の実施の形態2に係るバッファ制御装置のバッファ長の算出および設定と、バッファのデータ蓄積量の制御が行われる。   By the above procedure, the calculation and setting of the buffer length and the control of the data accumulation amount of the buffer are performed by the buffer control device according to the second embodiment of the present invention.

なお、この発明の実施の形態2に係るバッファ制御装置においても、この発明の実施の形態1における説明と同様に、バッファ長算出手段131は、状態記憶手段112が記憶する単一の期間内のバッファ状態に基づいてバッファ長を算出しても、あるいは状態記憶手段112が記憶する複数の期間(N期間)にわたるバッファ状態の履歴を反映させて各期間のバッファ状態から算出されるバッファ長に基づいて設定するバッファ長を算出しても構わない。   In the buffer control apparatus according to the second embodiment of the present invention as well, the buffer length calculation means 131 is within the single period stored in the state storage means 112, as described in the first embodiment of the present invention. Even if the buffer length is calculated based on the buffer state, or based on the buffer length calculated from the buffer state of each period reflecting the history of the buffer state over a plurality of periods (N periods) stored in the state storage unit 112. The buffer length to be set may be calculated.

このようにして、この発明の実施の形態2に係るバッファ制御装置は、この発明の実施の形態1に係るバッファ制御装置と同様の効果を得ることができる。   Thus, the buffer control device according to the second embodiment of the present invention can obtain the same effects as the buffer control device according to the first embodiment of the present invention.

また、この発明の実施の形態2に係るバッファ制御装置は、特に、最大データ蓄積量と最小データ蓄積量の差分に基づいてバッファ長を算出するため、バッファ長と最小データ蓄積量の差分に基づいてバッファ長を算出するこの発明の実施の形態1に係るバッファ制御装置よりもバッファ長が小さく算出されるので、データ転送の遅延時間をより抑制することができる。   In addition, the buffer control device according to the second embodiment of the present invention calculates the buffer length based on the difference between the maximum data accumulation amount and the minimum data accumulation amount, and in particular, based on the difference between the buffer length and the minimum data accumulation amount. Since the buffer length is calculated to be smaller than that of the buffer control device according to the first embodiment of the present invention that calculates the buffer length, the delay time of data transfer can be further suppressed.

なお、バッファ101のデータ蓄積量の監視からバッファ長算出手段131のバッファ長の算出までの処理過程において、この発明の実施の形態1に係るバッファ制御装置では、バッファ状態監視手段110内部の状態記憶手段112は、状態検知手段111が検知したバッファ101のデータ蓄積量が最小データ蓄積量であることを判定してから記憶し、バッファ長算出手段131は、状態記憶手段112が記憶した最小データ蓄積量に基づいてバッファ長を算出する形態の一例を説明した。また、この発明の実施の形態2に係るバッファ制御装置では、バッファ状態監視手段110内部の状態記憶手段112は、状態検知手段111が検知したバッファ101のデータ蓄積量が最大データ蓄積量または最小データ蓄積量であることを判定してから記憶し、バッファ長算出手段131は、状態記憶手段112が記憶した最大データ蓄積量および最小データ蓄積量に基づいてバッファ長を算出する形態の一例を説明した。   In the process from the monitoring of the data accumulation amount of the buffer 101 to the calculation of the buffer length of the buffer length calculation unit 131, the buffer control device according to the first embodiment of the present invention stores the state storage inside the buffer state monitoring unit 110. The means 112 stores the data after determining that the data storage amount of the buffer 101 detected by the state detection means 111 is the minimum data storage amount, and the buffer length calculation means 131 stores the minimum data storage stored by the state storage means 112. An example of calculating the buffer length based on the amount has been described. Further, in the buffer control device according to the second embodiment of the present invention, the state storage unit 112 inside the buffer state monitoring unit 110 is configured such that the data storage amount of the buffer 101 detected by the state detection unit 111 is the maximum data storage amount or the minimum data storage amount. The buffer length calculation unit 131 determines the buffer amount based on the maximum data storage amount and the minimum data storage amount stored by the state storage unit 112 after determining that it is the storage amount. .

よって、ここでは、このデータ蓄積量が最小データ蓄積量であることを判定する機能をもつ手段またはタイミングが異なる形態の変形例について説明する。この発明の実施の形態2に係るバッファ制御装置で必要とされる最大データ蓄積量については、最小データ蓄積量の最小判定と同様に、同一箇所で最大判定を行うことで得られるため、この発明の実施の形態1に係るバッファ制御装置の最小データ蓄積量のみ判定して記憶する形態について説明する。   Therefore, here, a description will be given of a modified example in which the means for determining that this data accumulation amount is the minimum data accumulation amount or the timing is different. The maximum data storage amount required in the buffer control device according to the second embodiment of the present invention can be obtained by performing the maximum determination at the same location as in the minimum determination of the minimum data storage amount. A mode in which only the minimum data accumulation amount of the buffer control device according to the first embodiment is determined and stored will be described.

第1の変形例は、図1に示すブロック構成図の構成のままで、状態検知手段111が検知したバッファ101のデータ蓄積量を状態記憶手段112が逐次記憶し、バッファ長算出手段131によるバッファ長算出の段階で、状態記憶手段112に記憶されたデータ蓄積量の中から最小データ蓄積量を選択する形態である。   In the first modified example, the state storage unit 112 sequentially stores the data accumulation amount of the buffer 101 detected by the state detection unit 111 while maintaining the configuration of the block configuration diagram illustrated in FIG. In this embodiment, the minimum data accumulation amount is selected from the data accumulation amounts stored in the state storage unit 112 at the length calculation stage.

この形態では、状態検知手段111は、バッファ101に蓄積されたデータ蓄積量を検知する。状態記憶手段112は、タイミング発生手段121からの期間開始のタイミングを知らされると、その時点で記憶するデータ蓄積量の初期化を行い、状態検知手段111に検知されたデータ蓄積量を逐次記憶する。バッファ長算出手段131は、期間内に状態記憶手段112が記憶したデータ蓄積量から最小データ蓄積量を選択することで得られ、バッファ長の算出を行うことができる。なお、この最小データ蓄積量の選択は、状態記憶手段112またはバッファ長算出手段131のいずれが行っても構わないが、バッファ長算出の段階で状態記憶手段112に記憶されたデータ蓄積量から選択するものである。   In this form, the state detection unit 111 detects the amount of data stored in the buffer 101. When the state storage unit 112 is informed of the timing of the period start from the timing generation unit 121, the state storage unit 112 initializes the data storage amount stored at that time and sequentially stores the data storage amount detected by the state detection unit 111. To do. The buffer length calculation means 131 is obtained by selecting the minimum data accumulation amount from the data accumulation amounts stored by the state storage means 112 within the period, and can calculate the buffer length. The minimum data accumulation amount may be selected by either the state storage unit 112 or the buffer length calculation unit 131, but selected from the data accumulation amount stored in the state storage unit 112 at the buffer length calculation stage. To do.

また、第2の変形例は、図7に示すブロック構成図のように構成することで、状態検知手段111が検知したバッファ101のデータ蓄積量が最小データ蓄積量であるかを状態検知手段111が判定して、状態記憶手段112に記憶させる形態である。   Further, the second modification is configured as shown in the block configuration diagram of FIG. 7 so that the state detection unit 111 determines whether the data storage amount of the buffer 101 detected by the state detection unit 111 is the minimum data storage amount. Is determined and stored in the state storage unit 112.

この形態では、状態記憶手段112は、タイミング発生手段121からの期間開始のタイミングを知らされると、その時点でバッファ101に蓄積されているデータ蓄積量、すなわち状態検知手段111に検知されたデータ蓄積量を最小データ蓄積量とする初期化を行う。状態検知手段111は、バッファ101に蓄積されたデータ蓄積量を検知し、データ蓄積量が状態記憶手段112に記憶された最小データ蓄積量を下回るとそのデータ蓄積量を最小データ蓄積量として更新して状態記憶手段112に記憶させる。この結果、バッファ長算出手段131は、期間内に状態記憶手段112が記憶した最小データ蓄積量を得てバッファ長の算出を行うことができる。   In this form, when the state storage unit 112 is informed of the timing of the period start from the timing generation unit 121, the amount of data stored in the buffer 101 at that time, that is, the data detected by the state detection unit 111 Initialize the accumulation amount as the minimum data accumulation amount. The state detection unit 111 detects the data accumulation amount accumulated in the buffer 101, and updates the data accumulation amount as the minimum data accumulation amount when the data accumulation amount falls below the minimum data accumulation amount stored in the state storage unit 112. And stored in the state storage means 112. As a result, the buffer length calculation unit 131 can calculate the buffer length by obtaining the minimum data accumulation amount stored by the state storage unit 112 within the period.

なお、これまでに説明してきたこの発明の実施の形態においては、データをフレーム単位で廃棄する例を示したが、フレーム以外の所定の単位で廃棄しても構わない。すなわち、フレーム検出手段131が検出対象とする単位であるフレームに代わって、バイトやワード等のデータ単位、パケット等の伝送単位などを検出する構成であっても構わない。この検出対象とする単位を選択するに当たっては、転送するデータを途中で廃棄しても再同期をとることができる単位であれば構わない。このような構成変更に伴い、状態検知手段112および状態記憶手段121の扱うバッファ状態の単位も変更される。   In the embodiments of the present invention described so far, the example in which data is discarded in units of frames has been shown. However, data may be discarded in units other than frames. In other words, instead of a frame that is a unit to be detected by the frame detection unit 131, a data unit such as a byte or a word, a transmission unit such as a packet, or the like may be detected. In selecting the unit to be detected, any unit can be used as long as it can re-synchronize even if the data to be transferred is discarded. With such a configuration change, the unit of the buffer state handled by the state detection unit 112 and the state storage unit 121 is also changed.

また、この発明の実施の形態においては、監視するバッファ状態の一例として、最大データ蓄積量や最小データ蓄積量としてフレーム単位のデータを記憶するものとして説明したが、蓄積しているデータ蓄積量を蓄積フレーム数として最大蓄積フレーム数や最小蓄積フレーム数を管理する形態をとっても構わない。このとき、定数Kの指定単位もフレーム数とする。   In the embodiment of the present invention, as an example of the buffer state to be monitored, it has been described that data in units of frames is stored as the maximum data accumulation amount or the minimum data accumulation amount. However, the accumulated data accumulation amount is The maximum number of stored frames and the minimum number of stored frames may be managed as the number of stored frames. At this time, the designated unit of the constant K is also the number of frames.

なお、バッファに入力されるデータは、通常はパケット(例えば、RTPパケット)単位であり、複数のパケットが到着してタイムスタンプを同じくするすべてのデータが集まってフレームが構成される。一方、バッファから出力されるデータは、TCPによる転送となってバイト単位で扱われるため、フレームのデータが一度に出力されるとは限らない。よって、データ蓄積量をフレーム数として管理する形態では、転送途上のフレームは含めず、バッファ内において完全な状態のフレーム数を管理する。これらのデータ入出力の形式変換は、バッファが機能の一部として備えているものとする。   Note that the data input to the buffer is usually in units of packets (for example, RTP packets), and a frame is formed by gathering all the data having the same time stamp when a plurality of packets arrive. On the other hand, since the data output from the buffer is transferred by TCP and handled in units of bytes, the frame data is not always output at a time. Therefore, in the form in which the data storage amount is managed as the number of frames, the number of frames in a complete state is managed in the buffer without including the frame in the middle of transfer. These data input / output format conversions are assumed to be provided as part of the function of the buffer.

また、この発明の実施の形態においては、記憶したバッファ状態に基づいて符号長の算出時に加算した定数Kを用いず、例えば、上記式1のようなバッファ長および最小データ蓄積量の差分、または上記式2のような最大データ蓄積量および最小データ蓄積量の差分に対して、例えば、その差分の5%や10%などの一定率の大きさ分を加えて代用しても構わない。また、一定率に限らず、例えば、差分の10%以内のランダム値の大きさ分を加えて代用しても構わない。あるいは、バッファ長および最小データ蓄積量の差分、または最大データ蓄積量および最小データ蓄積量の差分に対して、正負一定率以内のランダムな大きさ分を加減しても構わない。   In the embodiment of the present invention, the constant K added at the time of calculating the code length based on the stored buffer state is not used, for example, the difference between the buffer length and the minimum data accumulation amount as in the above equation 1, or For example, the difference between the maximum data accumulation amount and the minimum data accumulation amount as expressed by the above equation 2 may be substituted by adding a constant rate such as 5% or 10% of the difference. Moreover, it is not limited to a constant rate, and for example, a random value within 10% of the difference may be added and substituted. Alternatively, the difference between the buffer length and the minimum data storage amount or the difference between the maximum data storage amount and the minimum data storage amount may be adjusted by a random size within a certain positive / negative rate.

なお、この発明の実施の形態においては、動画像(映像)データを転送対象としたバッファ制御について説明を行ったが、音声データ、その他の広範なデータを転送対象とすることができる。   In the embodiment of the present invention, buffer control with moving image (video) data as a transfer target has been described. However, audio data and a wide range of other data can be transferred.

以上のように、この発明の実施の形態に係るバッファ制御装置は、直近のバッファ状態に基づいて、期間ごとにバッファ長を制御していくことで、適応的に最適なバッファ長でバッファを動作させることができ、必要以上に大き過ぎるバッファ長や少な過ぎるバッファ長を設定することがなくなり、データ廃棄率を必要以上に上昇させず、かつデータ転送の遅延時間を抑制することができる。   As described above, the buffer control device according to the embodiment of the present invention adaptively operates the buffer with the optimum buffer length by controlling the buffer length for each period based on the latest buffer state. Thus, the buffer length that is too large or too small is not set, the data discard rate is not increased more than necessary, and the data transfer delay time can be suppressed.

また、この発明の実施の形態に係るバッファ制御装置は、バッファ長の算出時に定数Kを加えることで、データ転送の揺らぎに対する一時的な蓄積量の増大を吸収し、データ廃棄を少なくすることができる。また、定数Kを加えることで、バッファの蓄積データにアンダーフローが発生するとき、次の期間のバッファ長を拡大して、データ蓄積量を多く保持できるようにすることができる。   In addition, the buffer control device according to the embodiment of the present invention can add a constant K when calculating the buffer length to absorb a temporary increase in the amount of accumulation due to fluctuations in data transfer and reduce data discard. it can. Further, by adding the constant K, when underflow occurs in the accumulated data in the buffer, the buffer length in the next period can be expanded so that a large amount of data can be retained.

また、この発明の実施の形態に係るバッファ制御装置は、この発明の実施の形態2に係るバッファ制御装置において最大データ蓄積量と最小データ蓄積量の差分に基づいてバッファ長を算出するため、この発明の実施の形態1に係るバッファ制御装置においてバッファ長と最小データ蓄積量の差分に基づいてバッファ長を算出するよりもバッファ長が小さく算出されるので、データ転送の遅延時間をより抑制することができる。   The buffer control device according to the embodiment of the present invention calculates the buffer length based on the difference between the maximum data accumulation amount and the minimum data accumulation amount in the buffer control device according to the second embodiment of the present invention. Since the buffer length is calculated to be smaller than the buffer length based on the difference between the buffer length and the minimum data accumulation amount in the buffer control device according to the first embodiment of the invention, the data transfer delay time is further suppressed. Can do.

この発明の実施の形態1およびこの発明の実施の形態2に係るバッファ制御装置の一例を示すブロック構成図である。It is a block block diagram which shows an example of the buffer control apparatus which concerns on Embodiment 1 of this invention and Embodiment 2 of this invention. この発明の実施の形態1に係るバッファ制御装置のバッファへのデータ蓄積量とバッファ長の関係の一例を示す説明図である。It is explanatory drawing which shows an example of the relationship between the data accumulation amount to the buffer of the buffer control apparatus which concerns on Embodiment 1 of this invention, and buffer length. この発明の実施の形態1に係るバッファ制御装置のバッファ制御処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the buffer control processing procedure of the buffer control apparatus which concerns on Embodiment 1 of this invention. この発明の実施の形態1に係るバッファ制御装置のバッファ長算出処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the buffer length calculation processing procedure of the buffer control apparatus which concerns on Embodiment 1 of this invention. この発明の実施の形態2に係るバッファ制御装置のバッファへのデータ蓄積量とバッファ長の関係の一例を示す説明図である。It is explanatory drawing which shows an example of the relationship between the data accumulation amount to the buffer of the buffer control apparatus concerning Embodiment 2 of this invention, and buffer length. この発明の実施の形態2に係るバッファ制御装置のバッファ長算出処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the buffer length calculation processing procedure of the buffer control apparatus which concerns on Embodiment 2 of this invention. この発明の実施の形態1およびこの発明の実施の形態2に係るバッファ制御装置の一例を示すブロック構成図である。It is a block block diagram which shows an example of the buffer control apparatus which concerns on Embodiment 1 of this invention and Embodiment 2 of this invention.

符号の説明Explanation of symbols

101 バッファ
110 バッファ状態監視手段
111 状態検知手段
112 状態記憶手段
121 タイミング発生手段
131 バッファ長算出手段
140 バッファ長制御手段
141 フレーム検出手段
142 データ廃棄手段
DESCRIPTION OF SYMBOLS 101 Buffer 110 Buffer state monitoring means 111 State detection means 112 State storage means 121 Timing generation means 131 Buffer length calculation means 140 Buffer length control means 141 Frame detection means 142 Frame discarding means 142

Claims (8)

入力データの蓄積および出力を行うバッファに蓄積されたデータの蓄積量を監視するバッファ状態監視手段と、
このバッファ状態監視手段により前記バッファのデータ蓄積量を監視する期間を発生するタイミング発生手段と、
このタイミング発生手段により発生した前記期間において、前記バッファ状態監視手段により監視された前記バッファのデータ蓄積量における最小データ蓄積量に基づいて有効バッファ長を算出するバッファ長算出手段と、
このバッファ長算出手段が算出した有効バッファ長に基づいて前記バッファを制御するバッファ制御手段と
を備えたことを特徴とするバッファ制御装置。
Buffer status monitoring means for monitoring the amount of data stored in a buffer for storing and outputting input data; and
Timing generating means for generating a period for monitoring the amount of data stored in the buffer by the buffer status monitoring means;
A buffer length calculating unit that calculates an effective buffer length based on a minimum data accumulation amount in the data accumulation amount of the buffer monitored by the buffer state monitoring unit in the period generated by the timing generation unit;
A buffer control device comprising: buffer control means for controlling the buffer based on the effective buffer length calculated by the buffer length calculation means.
前記バッファ制御手段は、前記バッファに蓄積されたデータのフレームを検出し、検出したフレーム単位に、前記バッファに設定された有効バッファ長を超えた前記バッファに蓄積されたデータを廃棄させる
ことを特徴とする請求項1記載のバッファ制御装置。
The buffer control means detects a frame of data stored in the buffer, and discards data stored in the buffer that exceeds the effective buffer length set in the buffer for each detected frame. The buffer control device according to claim 1.
前記バッファ長算出手段は、前記バッファに設定された有効バッファ長と前記バッファ状態監視手段により監視された前記バッファのデータ蓄積量に基づく最小データ蓄積量との差分に所定の数を加えた有効バッファ長を算出する
ことを特徴とする請求項1または請求項2に記載のバッファ制御装置。
The buffer length calculation means is an effective buffer obtained by adding a predetermined number to the difference between the effective buffer length set in the buffer and the minimum data accumulation amount based on the data accumulation amount of the buffer monitored by the buffer status monitoring means. The buffer control device according to claim 1, wherein the length is calculated.
前記バッファ長算出手段は、前記バッファ状態監視手段により監視された前記バッファのデータ蓄積量に基づく最大データ蓄積量と最小データ蓄積量との差分に所定の数を加えた有効バッファ長を算出する
ことを特徴とする請求項1または請求項2に記載のバッファ制御装置。
The buffer length calculating unit calculates an effective buffer length obtained by adding a predetermined number to a difference between the maximum data storage amount and the minimum data storage amount based on the data storage amount of the buffer monitored by the buffer state monitoring unit. The buffer control device according to claim 1, wherein:
入力データの蓄積および出力を行うバッファに蓄積されたデータの蓄積量を監視するバッファ状態監視ステップと、
このバッファ状態監視ステップにより前記バッファのデータ蓄積量を監視する期間を発生するタイミング発生ステップと、
このタイミング発生ステップにより発生した前記期間において、前記バッファ状態監視ステップにより監視された前記バッファのデータ蓄積量における最小データ蓄積量に基づいて有効バッファ長を算出するバッファ長算出ステップと、
このバッファ長算出ステップが算出した有効バッファ長に基づいて前記バッファを制御するバッファ制御ステップと
を有することを特徴とするバッファ制御方法。
A buffer status monitoring step for monitoring the amount of data stored in a buffer that stores and outputs input data; and
A timing generation step for generating a period for monitoring the data accumulation amount of the buffer by the buffer state monitoring step;
A buffer length calculating step for calculating an effective buffer length based on a minimum data accumulation amount in the buffer data accumulation amount monitored by the buffer state monitoring step in the period generated by the timing generation step;
And a buffer control step for controlling the buffer based on the effective buffer length calculated by the buffer length calculation step.
前記バッファ制御ステップは、前記バッファに蓄積されたデータのフレームを検出し、検出したフレーム単位に、前記バッファに設定された有効バッファ長を超えた前記バッファに蓄積されたデータを廃棄させる
ことを特徴とする請求項5記載のバッファ制御方法。
The buffer control step detects a frame of data accumulated in the buffer, and discards data accumulated in the buffer exceeding the effective buffer length set in the buffer in units of detected frames. The buffer control method according to claim 5.
前記バッファ長算出ステップは、前記バッファに設定された有効バッファ長と前記バッファ状態監視ステップにより監視された前記バッファのデータ蓄積量に基づく最小データ蓄積量との差分に所定の数を加えた有効バッファ長を算出する
ことを特徴とする請求項5または請求項6に記載のバッファ制御方法。
The buffer length calculation step includes an effective buffer obtained by adding a predetermined number to a difference between an effective buffer length set in the buffer and a minimum data accumulation amount based on the data accumulation amount of the buffer monitored by the buffer state monitoring step. The buffer control method according to claim 5 or 6, wherein the length is calculated.
前記バッファ長算出ステップは、前記バッファ状態監視ステップにより監視された前記バッファのデータ蓄積量に基づく最大データ蓄積量と最小データ蓄積量との差分に所定の数を加えた有効バッファ長を算出する
ことを特徴とする請求項5または請求項6に記載のバッファ制御方法。
The buffer length calculating step calculates an effective buffer length obtained by adding a predetermined number to a difference between the maximum data accumulation amount and the minimum data accumulation amount based on the data accumulation amount of the buffer monitored by the buffer state monitoring step. The buffer control method according to claim 5, wherein:
JP2006231899A 2006-08-29 2006-08-29 Buffer control device and buffer control method Expired - Fee Related JP4730259B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006231899A JP4730259B2 (en) 2006-08-29 2006-08-29 Buffer control device and buffer control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006231899A JP4730259B2 (en) 2006-08-29 2006-08-29 Buffer control device and buffer control method

Publications (2)

Publication Number Publication Date
JP2008060658A true JP2008060658A (en) 2008-03-13
JP4730259B2 JP4730259B2 (en) 2011-07-20

Family

ID=39242949

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006231899A Expired - Fee Related JP4730259B2 (en) 2006-08-29 2006-08-29 Buffer control device and buffer control method

Country Status (1)

Country Link
JP (1) JP4730259B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010268321A (en) * 2009-05-15 2010-11-25 Fujitsu Ltd Transmitter and transmission method
JP2013138340A (en) * 2011-12-28 2013-07-11 Oki Electric Ind Co Ltd Data control unit, data control program, data processor and data processing program
JP2014110526A (en) * 2012-11-30 2014-06-12 Yamaha Corp Buffer size determination method and device for network reception buffer, and network session system
WO2022097756A1 (en) * 2020-11-09 2022-05-12 株式会社 東芝 Frame synchronization device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09252298A (en) * 1996-03-14 1997-09-22 Toshiba Corp Congestion discrimination device
JPH10285170A (en) * 1997-04-03 1998-10-23 Nec Corp Atm cell delay fluctuation absorptive buffer control method
JP2000307638A (en) * 1999-04-16 2000-11-02 Toshiba Corp Receiving buffer controlling device
JP2004048343A (en) * 2002-07-11 2004-02-12 Hitachi Communication Technologies Ltd Voice packet receiver, its operating program, and method for absorbing fluctuation in voice packets
JP2005318379A (en) * 2004-04-30 2005-11-10 Saxa Inc Fluctuation absorption control method for voice packet
JP2005318092A (en) * 2004-04-27 2005-11-10 Fujitsu Ltd Packet reception method and device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09252298A (en) * 1996-03-14 1997-09-22 Toshiba Corp Congestion discrimination device
JPH10285170A (en) * 1997-04-03 1998-10-23 Nec Corp Atm cell delay fluctuation absorptive buffer control method
JP2000307638A (en) * 1999-04-16 2000-11-02 Toshiba Corp Receiving buffer controlling device
JP2004048343A (en) * 2002-07-11 2004-02-12 Hitachi Communication Technologies Ltd Voice packet receiver, its operating program, and method for absorbing fluctuation in voice packets
JP2005318092A (en) * 2004-04-27 2005-11-10 Fujitsu Ltd Packet reception method and device
JP2005318379A (en) * 2004-04-30 2005-11-10 Saxa Inc Fluctuation absorption control method for voice packet

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010268321A (en) * 2009-05-15 2010-11-25 Fujitsu Ltd Transmitter and transmission method
JP2013138340A (en) * 2011-12-28 2013-07-11 Oki Electric Ind Co Ltd Data control unit, data control program, data processor and data processing program
JP2014110526A (en) * 2012-11-30 2014-06-12 Yamaha Corp Buffer size determination method and device for network reception buffer, and network session system
WO2022097756A1 (en) * 2020-11-09 2022-05-12 株式会社 東芝 Frame synchronization device

Also Published As

Publication number Publication date
JP4730259B2 (en) 2011-07-20

Similar Documents

Publication Publication Date Title
JP4147534B2 (en) Communication apparatus and communication method
JP3636348B2 (en) Voice packet delay fluctuation absorbing apparatus and absorbing method
JP3231941B2 (en) Congestion prevention method and packet communication system
EP2140590B1 (en) Method of transmitting data in a communication system
EP1246409A1 (en) Packet retransmission system, packet transmission device, packet reception device, packet retransmission method, packet transmission method and packet reception method
JP4930588B2 (en) Relay device and relay method
CN106331717B (en) Video code rate self-adapting regulation method and sending ending equipment
JP2002077233A (en) Real-time information receiving apparatus
JP4730259B2 (en) Buffer control device and buffer control method
KR20070106985A (en) Data flow control with duplicate acknowledgment
EP3329641A1 (en) Monitoring network conditions
JP4699947B2 (en) Communication terminal device
JP4842754B2 (en) Communication apparatus and communication method
JP4704500B2 (en) Packet processing device
JP2008005392A (en) Communication terminal device and buffer controlling method
JPWO2005086436A1 (en) Packet transfer device, packet transfer network system, and terminal device
JP2006513663A (en) Method and apparatus for congestion notification in a packet network, informing various congestion factors
JP4629593B2 (en) Packet transmission apparatus and packet transmission system
US20040085963A1 (en) Method of organizing data packets
JP6512282B2 (en) Communication apparatus, available band calculation system, available band calculation method and program
JP2009278532A (en) Transmission apparatus and congestion control method
JP4655870B2 (en) Packet transmission / reception system and elapsed time measurement method
JP2009071766A (en) Signal receiving terminal apparatus
JP5604919B2 (en) Packet transfer apparatus and packet transfer method
KR20070057632A (en) Method and device for controlling congestion in high bandwidth-delay product networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100928

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101125

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110404

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees