JP2008060658A - Buffer controller and control method - Google Patents
Buffer controller and control method Download PDFInfo
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
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
また、エンコーダを有する装置のバッファ制御では、例えば、特許文献2に開示されるように、バッファの有効サイズを伝送ビット速度とともに変更し、符号化速度を変えることで充填レベルを制限範囲内に維持して一定遅延の伝送を行う。
In the buffer control of an apparatus having an encoder, for example, as disclosed in
従来のバッファ制御では、データを転送する際に、バッファがオーバーフローしないように制御するものであり、バッファ長固定の場合、バッファの出力データ容量に対して入力データ量が大きいときには、バッファ内データ量が最大でバッファ長まで増大し、データがバッファに入力されてからバッファから出力されるまでに時間がかかるため、データ転送の遅延時間の抑制を図ることができないという問題点があった。 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では、バッファに動画像データ(以下、データという)が蓄積されて転送遅延が大きくなるとデータを画像フレーム(以下、フレームという)単位に廃棄するとともに、ある期間の終了時に、その終了した期間のバッファ長と最小データ蓄積量とに基づいて算出したバッファ長を、次の期間のバッファ長として設定するバッファ制御装置について説明する。
In
図1は、この発明の実施の形態1に係るバッファ制御装置の一例を示すブロック構成図である。このブロック構成図に基づいて、各構成要素の機能を説明する。
FIG. 1 is a block diagram showing an example of a buffer control apparatus according to
図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
次に、タイミング発生手段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
また、バッファ長算出手段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
また、バッファ制御手段140は、このバッファ長算出手段131が算出したバッファ長に基づいてバッファ101を制御する。このバッファ制御手段140は、バッファ101の蓄積データからフレームを検出するフレーム検出手段141と、新しい期間に入るときにバッファ長算出手段131が算出したバッファ長を再設定し、このバッファ長の再設定によってその時点のデータ蓄積量がバッファ長を超えてオーバーフローするとき、または期間中でもバッファ監視手段110が検知したバッファ101のデータ蓄積量がバッファ長を超えてオーバーフローするとき、フレーム検出手段141が検出したフレーム単位に蓄積データの一部を廃棄してバッファ長に収まるように制御を行うデータ廃棄手段142とから構成されている。なお、期間中にオーバーフローしてもバッファ長の再設定は行わないものとする。また、このバッファ制御手段140がバッファ101にバッファ長を設定することで、バッファ101がバッファ長に基づいてデータ蓄積量を制御するものとして説明したが、バッファ制御手段140がバッファ長に基づいてバッファ101に対しデータ蓄積量を制御する構成としても構わない。
Further, the
以下では、期間内のバッファ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
次に、この発明の実施の形態1に係るバッファ制御装置のバッファ101のデータ蓄積量とバッファ長に基づくバッファ制御の動作について説明する。まず、基本的なバッファ制御の概要を説明する。
Next, the buffer control operation based on the data accumulation amount and the buffer length of the
図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
バッファ長算出手段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.
最初に計算した仮のバッファ長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
以上のような算出方法により、図2に例示した期間nの各時刻におけるバッファ101のデータ蓄積量DataSize(n)が変化していったとき、バッファ長算出手段131はバッファ長を次のように算出していく。ここでは、定数Kを1とする。
When the data accumulation amount DataSize (n) of the
まず、期間(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
バッファ101は、バッファ長とデータ蓄積量に基づいて、バッファ101へデータの入力が可能か否かを判定する(ステップST101)。データの入力が可能であるとき(Yes)には、バッファ101は、データを入力する(ステップST102)。バッファ状態監視手段110は、バッファ101でデータ入力によるオーバーフローの発生を確認する(ステップST103)。オーバーフローが発生していることが確認できたとき(Yes)には、バッファ制御手段140は、バッファ101からデータ廃棄を行う(ステップST104)。また、ステップST103で、バッファ入力によるオーバーフローが発生していないことが確認できたとき(No)には、データ廃棄(ステップST104)は行わず、スキップする。ステップST102またはステップST104でバッファに蓄積されるデータ蓄積量が変化するので、バッファ状態監視手段110は、減少に伴うバッファ状態(データ蓄積量)を更新する(ステップ105)。
The
一方、ステップ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
次に、図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
さらに、図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
以上のように、図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
次に、仮のバッファ長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
以上の手順により、この発明の実施の形態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
また、これまでバッファ長算出に使用するバッファ状態は、単一の期間に記憶されたデータ蓄積量を使用するものとして説明したが、複数の期間にわたって記憶されたデータ蓄積量を使用するものであっても構わない。この発明の実施の形態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
例えば、バッファ長を算出する期間として過去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におけるバッファ長の算出の仕方について説明する。
In
この発明の実施の形態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
バッファ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
以下では、期間内のバッファ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
次に、この発明の実施の形態2に係るバッファ制御装置のバッファ101のデータ蓄積量とバッファ長に基づくバッファ制御の動作について説明する。まず、基本的なバッファ制御の概要を説明する。
Next, the buffer control operation based on the data accumulation amount and the buffer length of the
図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
バッファ長算出手段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
最初に計算した仮のバッファ長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
以上のような算出方法により、図5に例示した期間nの各時刻におけるバッファ101のデータ蓄積量DataSize(n)が変化していったとき、バッファ長算出手段131はバッファ長を次のように算出していく。ここでは、定数Kを1とする。
When the data accumulation amount DataSize (n) of the
まず、期間(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
まず、バッファ長算出手段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
以上の手順により、この発明の実施の形態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
このようにして、この発明の実施の形態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
よって、ここでは、このデータ蓄積量が最小データ蓄積量であることを判定する機能をもつ手段またはタイミングが異なる形態の変形例について説明する。この発明の実施の形態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
この形態では、状態検知手段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
また、第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
この形態では、状態記憶手段112は、タイミング発生手段121からの期間開始のタイミングを知らされると、その時点でバッファ101に蓄積されているデータ蓄積量、すなわち状態検知手段111に検知されたデータ蓄積量を最小データ蓄積量とする初期化を行う。状態検知手段111は、バッファ101に蓄積されたデータ蓄積量を検知し、データ蓄積量が状態記憶手段112に記憶された最小データ蓄積量を下回るとそのデータ蓄積量を最小データ蓄積量として更新して状態記憶手段112に記憶させる。この結果、バッファ長算出手段131は、期間内に状態記憶手段112が記憶した最小データ蓄積量を得てバッファ長の算出を行うことができる。
In this form, when the
なお、これまでに説明してきたこの発明の実施の形態においては、データをフレーム単位で廃棄する例を示したが、フレーム以外の所定の単位で廃棄しても構わない。すなわち、フレーム検出手段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
また、この発明の実施の形態においては、監視するバッファ状態の一例として、最大データ蓄積量や最小データ蓄積量としてフレーム単位のデータを記憶するものとして説明したが、蓄積しているデータ蓄積量を蓄積フレーム数として最大蓄積フレーム数や最小蓄積フレーム数を管理する形態をとっても構わない。このとき、定数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
なお、この発明の実施の形態においては、動画像(映像)データを転送対象としたバッファ制御について説明を行ったが、音声データ、その他の広範なデータを転送対象とすることができる。 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.
101 バッファ
110 バッファ状態監視手段
111 状態検知手段
112 状態記憶手段
121 タイミング発生手段
131 バッファ長算出手段
140 バッファ長制御手段
141 フレーム検出手段
142 データ廃棄手段
DESCRIPTION OF
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:
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)
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)
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 |
-
2006
- 2006-08-29 JP JP2006231899A patent/JP4730259B2/en not_active Expired - Fee Related
Patent Citations (6)
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)
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 |