(57)【要約】【解決手段】概して、この開示は、メディアデータの入力ストリームに関連するクロックと、メディアデータの出力ストリームに関連するクロックとの間の差分を補償する技術を述べる。トランスコーダがメディアデータユニット（ＭＤＵ）を受信するレートを管理するクロックと、トランスコーダがＭＤＵを出力するレートを管理するクロックとの間のドリフトにより、トランスコーダは、トランスコーダがＭＤＵを出力するレートよりも速いまたは遅いレートでＭＤＵを受信し得る。トランスコーダは、訂正強度を引いた出力期間に等しい時間を占める、受信したＭＤＵのセットを特定すること、ＭＤＵのセットが出力期間に等しい時間を占めるように、特定されたＭＤＵのセットを修正すること、及びＭＤＵの修正されたセットを出力ストリームの一部として出力すること、により、そのような差分を補償する。【選択図】図２
2010521089.tif 000002
【特許請求の範囲】
【請求項１】
トランスコーダのバッファに複数のメディアデータユニット（ＭＤＵ）を、メディアソースのソースクロックに依存するレートで格納することと、
前記バッファ内の前記ＭＤＵのセットについての出力インターバルを特定することと、
前記バッファから前記ＭＤＵの前記セットを取り出すことと、
前記ＭＤＵのコンテンツ（content）に基づいて、前記バッファから取り出された前記ＭＤＵの前記セットを修正することと
を具備し、前記出力インターバルは前記ソースクロックに依存し、訂正強度（correction magnitude）の差で出力期間と異なり、前記出力期間は前記トランスコーダの出力クロックに依存し、
前記ＭＤＵの前記取り出されたセットに関連する期間は、実質的に前記出力インターバルに相当し、
前記ＭＤＵのセットは、ＭＤＵの前記修正されたセットに関連する期間が前記出力期間に実質的に相当するように、修正される、方法。
【請求項２】
ＭＤＵの前記セットを修正することは、前記ＭＤＵのコンテンツに基づいて、１つまたはそれ以上のＭＤＵを追加または削除すること、を備える請求項１の方法。
【請求項３】
ＭＤＵの前記修正されたセットを、出力メディアデータストリームの一部として出力すること、を更に備える請求項１の方法。
【請求項４】
前記出力インターバルを特定することは、
前記バッファの現在の平均深さに基づいて前記訂正強度を特定することと、
前記出力インターバルを、前記訂正強度を引いた前記出力期間に等しい値として特定することと、を備える請求項１の方法。
【請求項５】
前記トランスコーダにおける較正フェーズの期間の、前記バッファの平均深さの指標であるセットポイントを確立する較正動作を実行することと、
前記バッファの現在の平均深さを引いた前記セットポイントに等しいドリフト係数を算出することと
を更に備え、前記訂正強度を特定することは、前記ドリフト係数に基づいて前記訂正強度を特定することを備える、請求項４の方法。
【請求項６】
前記較正動作を実行することは、前記較正フェーズの期間、前記出力期間が経過したことを前記出力クロックが示す度に、前記較正動作の１つを実行すること、を備える請求項５の方法。
【請求項７】
前記ドリフト係数に基づいて前記訂正強度を特定することは、
前記ドリフト係数の絶対値が最小ドリフト閾値以上であるかを判断することと、
前記ドリフト係数の前記絶対値が前記最小ドリフト閾値以上でない場合に、前記訂正強度をゼロに特定することと
を備える請求項５の方法。
【請求項８】
前記ドリフト係数に基づいて前記訂正強度を特定することは、
前記ＭＤＵの前記取り出されたセットが訂正機会に関連付けられているかを判断することと、
前記ＭＤＵの前記取り出されたセットが訂正機会に関連付けられている場合、前記訂正強度を前記ドリフト係数に特定することと
を備える請求項５の方法。
【請求項９】
前記ＭＤＵの前記取り出されたセットが前記訂正機会に関連付けられているかを判断することは、機会のリストから選択された少なくとも１つの機会が満たされた際に、前記ＭＤＵの前記取り出されたセットが前記訂正機会に関連付けられていると判断することを備え、前記機会のリストは、
前記ＭＤＵの前記取り出されたセットにおける前記ＭＤＵが、プログラムクロックリファレンスに対する参照に関連付けられていない場合、
前記ＭＤＵの前記取り出されたセットにおけるＭＤＵが、不連続のプログラムクロックリファレンスに関連付けられている場合、
前記ＭＤＵの前記取り出されたセットにおけるＭＤＵが、異なるプログラムマップテーブルに関連付けられている場合、
前記ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上のＭＤＵが、プログラムマップテーブルの修正メッセージに関連付けられている場合、
ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上の連続したＭＤＵが、音声の無音（audio silence）に関連付けられている場合、
ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上の連続したＭＤＵが、黒い映像（dark video）に関連付けられている場合、及び
ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上の連続したＭＤＵが、音声の無音及び黒い映像に関連付けられている場合、
を含む請求項８の方法。
【請求項１０】
前記ドリフト係数に基づいて前記訂正強度を特定することは、
前記ドリフト係数の絶対値が最大許容ドリフト閾値以上であるかを判断することと、
前記ドリフト係数の前記絶対値が前記最大許容ドリフト閾値以上である場合に、前記訂正強度を最大ドリフト訂正値に特定することと
を備え、前記最大ドリフト訂正値は、前記ドリフト係数よりも小さい値である、請求項５の方法。
【請求項１１】
前記ＭＤＵは映像フレームを備える、請求項１の方法。
【請求項１２】
ＭＤＵの前記セットを修正することは、前記映像フレームに関連付けられたタイムスタンプを修正することを備える、請求項１１の方法。
【請求項１３】
ＭＤＵは音声サンプルを備える、請求項１の方法。
【請求項１４】
ＭＤＵの前記セットを修正することは、１つまたはそれ以上の音声サンプルを削除することを備える、請求項１３の方法。
【請求項１５】
ＭＤＵの前記セットを修正することは、１つまたはそれ以上の音声サンプルを挿入することを備える、請求項１３の方法。
【請求項１６】
前記バッファ内の前記ＭＤＵの前記セットについての前記出力インターバルを特定することは、前記バッファの平均深さがバッファのアンダーフローポイントを下回らず、バッファのオーバーフローポイントを上回らないように、前記ＭＤＵの前記セットについての前記出力インターバルを特定することを備える、請求項１の方法。
【請求項１７】
前記ＭＤＵを第１の形式から第２の形式に変換することを更に備え、
前記出力メディアデータストリームにおけるＭＤＵの前記セットは、前記第２の形式にフォーマットされる、請求項１の方法。
【請求項１８】
前記第１の形式は、ＭＰＥＧ（Moving Pictures Experts Group）規格の形式、国際電気通信連合（ＩＴＵ）のＨ．２６１規格の形式、Ｈ．２６２規格の形式、Ｈ．２６３規格の形式、ＩＴＵのＨ．２６４規格の形式、及びシリアルデジタルインターフェース規格の形式、からなるグループから選択される、請求項１７の方法。
【請求項１９】
エンコードされたＭＤＵを含む入力マルチメディアデータストリームを受信することと、
前記エンコードされたＭＤＵをデコードすることにより前記ＭＤＵを生成することと
を更に備える請求項１の方法。
【請求項２０】
出力クロックと、
メディアデータユニット（ＭＤＵ）を格納可能なバッファと、
前記バッファに前記ＭＤＵを、メディアソースのソースクロックに依存するレートで格納する受信モジュールと、
前記バッファ内の前記ＭＤＵのセットについての出力インターバルを特定するインターバル特定モジュールと、
前記バッファからＭＤＵの前記セットを取り出すＭＤＵ取り出しモジュールと、
前記ＭＤＵのコンテンツ（content）に基づいて、前記バッファから取り出されたＭＤＵの前記セットを修正するドリフト訂正モジュールと
を具備し、前記出力インターバルは前記ソースクロックに依存し、訂正強度（correction magnitude）の差で出力期間と異なり、前記出力期間はトランスコーダデバイスの出力クロックに依存し、
前記ＭＤＵの前記取り出されたセットに関連付けられた期間は、実質的に前記出力インターバルに相当し、
前記ドリフト訂正モジュールは、前記ＭＤＵの前記修正されたセットに関連付けられた期間が前記出力期間に実質的に相当するように、ＭＤＵの前記セットを修正する、トランスコーダデバイス。
【請求項２１】
前記ドリフト訂正モジュールは、前記ＭＤＵのコンテンツに基づいて、１つまたはそれ以上のＭＤＵを追加または削除することにより、ＭＤＵの前記セットを修正する、請求項２０のデバイス。
【請求項２２】
ＭＤＵの前記修正されたセットを、メディア出力ストリームの一部として出力する出力モジュール、を更に備える請求項２０のデバイス。
【請求項２３】
前記インターバル特定モジュールは、前記バッファの現在の平均深さに基づいて前記訂正強度を特定し、前記訂正強度を引いた前記出力期間に等しい値に前記出力インターバルを特定する、請求項２０のデバイス。
【請求項２４】
前記デバイスは、前記トランスコーダデバイスにおける較正フェーズの期間の、前記バッファの平均深さの指標であるセットポイントを確立する較正動作を実行する較正モジュールを更に備え、
前記インターバル特定モジュールは、前記バッファの現在の平均深さを引いた前記セットポイントに等しいドリフト係数を算出するドリフト算出モジュールを備え、
前記インターバル特定モジュールは、前記ドリフト係数に基づいて前記訂正強度を特定する、請求項２３のデバイス。
【請求項２５】
前記較正モジュールは、前記較正フェーズの期間、前記出力期間が経過したことを前記出力クロックが示す度に、前記較正動作の１つを実行する、請求項２４のデバイス。
【請求項２６】
前記インターバル特定モジュールは、前記ドリフト係数の絶対値が最小ドリフト閾値以上であるかを判断し、前記ドリフト係数の絶対値が前記最小ドリフト閾値以上でない場合に前記訂正強度をゼロに特定する、ドリフト閾値モジュールを備える、請求項２４のデバイス。
【請求項２７】
前記インターバル特定モジュールは、前記ＭＤＵの前記取り出されたセットが訂正機会に関連付けられているかを判断し、前記ＭＤＵの前記取り出されたセットが訂正機会に関連付けられている場合、前記訂正強度を前記ドリフト係数に特定する、機会検出モジュールを備える、請求項２４のデバイス。
【請求項２８】
前記機会検出モジュールは、機会のリストから選択された少なくとも１つの機会が満たされた際に、前記ＭＤＵの前記取り出されたセットが前記訂正機会に関連付けられていると判断し、前記機会のリストは、
前記ＭＤＵの前記取り出されたセットにおける前記ＭＤＵが、プログラムクロックリファレンスに対する参照に関連付けられていない場合、
前記ＭＤＵの前記取り出されたセットにおけるＭＤＵが、不連続のプログラムクロックリファレンスに関連付けられている場合、
前記ＭＤＵの前記取り出されたセットにおけるＭＤＵが、異なるプログラムマップテーブルに関連付けられている場合、
前記ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上のＭＤＵが、プログラムマップテーブルの修正メッセージに関連付けられている場合、
ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上の連続したＭＤＵが、音声の無音（audio silence）に関連付けられている場合、
ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上の連続したＭＤＵが、黒い映像（dark video）に関連付けられている場合、及び
ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上の連続したＭＤＵが、音声の無音及び黒い映像に関連付けられている場合、
を含む請求項２７のデバイス。
【請求項２９】
前記インターバル特定モジュールは、前記ドリフト係数の絶対値が最大許容ドリフト閾値以上であるかを判断し、前記ドリフト係数の前記絶対値が前記最大許容ドリフト閾値以上である場合に、前記訂正強度を最大ドリフト訂正値に特定する、部分訂正モジュールを備え、
前記最大ドリフト訂正値は、前記ドリフト係数よりも小さい値である、請求項２４のデバイス。
【請求項３０】
ＭＤＵは映像フレームを備える、請求項２０のデバイス。
【請求項３１】
前記ドリフト訂正モジュールは、前記映像フレームに関連付けられたタイムスタンプを修正する映像修正モジュールを備える、請求項３０のデバイス。
【請求項３２】
ＭＤＵは音声サンプルを備える、請求項２０のデバイス。
【請求項３３】
前記ドリフト訂正モジュールは、音声サンプルの１つまたはそれ以上を削除して、ＭＤＵの前記修正されたセットを生成する、音声修正モジュールを備える、請求項３２のデバイス。
【請求項３４】
前記ドリフト訂正モジュールは、音声サンプルの１つまたはそれ以上を挿入して、ＭＤＵの前記修正されたセットを生成する、音声修正モジュールを備える、請求項３２のデバイス。
【請求項３５】
前記インターバル特定モジュールは、前記バッファの平均深さがバッファのアンダーフローポイントを下回らず、バッファのオーバーフローポイントを上回らないように、前記バッファ内の前記ＭＤＵの前記セットについての前記出力インターバルを特定する、請求項２０のデバイス。
【請求項３６】
前記デバイスは、前記ＭＤＵを第１の形式から第２の形式に変換するデータ変換モジュールを更に備え、
前記出力メディアデータストリームにおけるＭＤＵは、前記第２の形式にフォーマットされる、請求項２０のデバイス。
【請求項３７】
前記第１の形式は、ＭＰＥＧ（Moving Pictures Experts Group）規格の形式、国際電気通信連合（ＩＴＵ）のＨ．２６１規格の形式、Ｈ．２６２規格の形式、Ｈ．２６３規格の形式、ＩＴＵのＨ．２６４規格の形式、及びシリアルデジタルインターフェース規格の形式、からなるグループから選択される、請求項３６のデバイス。
【請求項３８】
前記受信モジュールは、エンコードされたＭＤＵを含む入力マルチメディアデータストリームを受信し、前記エンコードされたＭＤＵをデコードすることにより前記ＭＤＵを生成する、請求項２０のデバイス。
【請求項３９】
バッファに複数のメディアデータユニット（ＭＤＵ）を、メディアソースのソースクロックに依存するレートで格納する手段と、
前記バッファ内の前記ＭＤＵのセットについての出力インターバルを特定する手段と、
前記バッファから前記ＭＤＵの前記セットを取り出す手段と、
前記ＭＤＵのコンテンツ（content）に基づいて、前記バッファから取り出された前記ＭＤＵの前記セットを修正する手段と
を具備し、前記出力インターバルは前記ソースクロックに依存し、訂正強度（correction magnitude）の差で出力期間と異なり、前記出力期間はトランスコーダの出力クロックに依存し、
前記ＭＤＵの前記取り出されたセットに関連する期間は、実質的に前記出力インターバルに相当し、
前記ＭＤＵの前記セットを修正する手段は、ＭＤＵの前記修正されたセットに関連する期間が前記出力期間に実質的に相当するように、前記ＭＤＵの前記セットを修正する、トランスコーダデバイス。
【請求項４０】
前記バッファから取り出されたＭＤＵの前記セットを修正する手段は、前記ＭＤＵのコンテンツに基づいて、１つまたはそれ以上のＭＤＵを追加または削除する、ことにより、ＭＤＵの前記セットを修正する、請求項３９のデバイス。
【請求項４１】
ＭＤＵの前記修正されたセットを、出力メディアデータストリームの一部として出力する手段、を更に備える請求項３９のデバイス。
【請求項４２】
前記出力インターバルを特定する手段は、
前記バッファの現在の平均深さに基づいて前記訂正強度を特定し、
前記出力インターバルを、前記訂正強度を引いた前記出力期間に等しい値に特定する、請求項３９のデバイス。
【請求項４３】
前記トランスコーダにおける較正フェーズの期間の、前記バッファの平均深さの指標であるセットポイントを確立する較正動作を実行する手段と、
前記バッファの現在の平均深さを引いた前記セットポイントに等しいドリフト係数を算出する手段と
を更に備え、前記訂正強度を特定する手段は、前記ドリフト係数に基づいて前記訂正強度を特定する、請求項３９のデバイス。
【請求項４４】
前記較正動作を実行する手段は、前記較正フェーズの期間、前記出力期間が経過したことを前記出力クロックが示す度に、前記較正動作の１つを実行する、請求項４３のデバイス。
【請求項４５】
前記ドリフト係数に基づいて前記訂正強度を特定する手段は、
前記ドリフト係数の絶対値が最小ドリフト閾値以上であるかを判断し、
前記ドリフト係数の前記絶対値が前記最小ドリフト閾値以上でない場合に、前記訂正強度をゼロに特定する、請求項４３のデバイス。
【請求項４６】
前記ドリフト係数に基づいて前記訂正強度を特定する手段は、
前記ＭＤＵの前記取り出されたセットが訂正機会に関連付けられているかを判断し、
前記ＭＤＵの前記取り出されたセットが訂正機会に関連付けられている場合、前記訂正強度を前記ドリフト係数に特定する、請求項４３のデバイス。
【請求項４７】
前記ＭＤＵの前記取り出されたセットが前記訂正機会に関連付けられているかを判断する手段は、機会のリストから選択された少なくとも１つの機会が満たされた際に、前記ＭＤＵの前記取り出されたセットが前記訂正機会に関連付けられていると判断する手段を備え、前記機会のリストは、
前記ＭＤＵの前記取り出されたセットにおける前記ＭＤＵが、プログラムクロックリファレンスに対する参照に関連付けられていない場合、
前記ＭＤＵの前記取り出されたセットにおけるＭＤＵが、不連続のプログラムクロックリファレンスに関連付けられている場合、
前記ＭＤＵの前記取り出されたセットにおけるＭＤＵが、異なるプログラムマップテーブルに関連付けられている場合、
前記ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上のＭＤＵが、プログラムマップテーブルの修正メッセージに関連付けられている場合、
ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上の連続したＭＤＵが、音声の無音（audio silence）に関連付けられている場合、
ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上の連続したＭＤＵが、黒い映像（dark video）に関連付けられている場合、及び
ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上の連続したＭＤＵが、音声の無音及び黒い映像に関連付けられている場合、
を含む請求項４６のデバイス。
【請求項４８】
前記ドリフト係数に基づいて前記訂正強度を特定する手段は、
前記ドリフト係数の絶対値が最大許容ドリフト閾値以上であるかを判断し、
前記ドリフト係数の前記絶対値が前記最大許容ドリフト閾値以上である場合に、前記訂正強度を最大ドリフト訂正値に特定し、
前記最大ドリフト訂正値は、前記ドリフト係数よりも小さい値である、請求項４３のデバイス。
【請求項４９】
前記ＭＤＵは映像フレームを備える、請求項３９のデバイス。
【請求項５０】
ＭＤＵの前記セットを修正する手段は、前記映像フレームに関連付けられたタイムスタンプを修正する、請求項４９のデバイス。
【請求項５１】
ＭＤＵは音声サンプルを備える、請求項３９のデバイス。
【請求項５２】
ＭＤＵの前記セットを修正する手段は、１つまたはそれ以上の音声サンプルを削除する、請求項５１のデバイス。
【請求項５３】
ＭＤＵの前記セットを修正する手段は、１つまたはそれ以上の音声サンプルを挿入する、請求項５１のデバイス。
【請求項５４】
前記バッファ内の前記ＭＤＵの前記セットについての前記出力インターバルを特定する手段は、前記バッファの平均深さがバッファのアンダーフローポイントを下回らず、バッファのオーバーフローポイントを上回らないように、前記ＭＤＵの前記セットについての前記出力インターバルを特定する、請求項３９のデバイス。
【請求項５５】
前記ＭＤＵを第１の形式から第２の形式に変換する手段を更に備え、前記出力メディアデータストリームにおけるＭＤＵの前記セットは、前記第２の形式にフォーマットされる、請求項３９のデバイス。
【請求項５６】
前記第１の形式は、ＭＰＥＧ（Moving Pictures Experts Group）規格の形式、国際電気通信連合（ＩＴＵ）のＨ．２６１規格の形式、Ｈ．２６２規格の形式、Ｈ．２６３規格の形式、ＩＴＵのＨ．２６４規格の形式、及びシリアルデジタルインターフェース規格の形式、からなるグループから選択される、請求項５５のデバイス。
【請求項５７】
エンコードされたＭＤＵを含む入力マルチメディアデータストリームを受信する手段と、
前記エンコードされたＭＤＵをデコードすることにより前記ＭＤＵを生成する手段と
を更に備える請求項３９のデバイス。
【請求項５８】
実行時に、１つまたはそれ以上のプロセッサに対して、
トランスコーダのバッファに複数のメディアデータユニット（ＭＤＵ）を、メディアソースのソースクロックに依存するレートで格納させ、
前記バッファ内の前記ＭＤＵのセットについての出力インターバルを特定させ、
前記バッファから前記ＭＤＵの前記セットを取り出させ、
前記ＭＤＵのコンテンツ（content）に基づいて、前記バッファから取り出された前記ＭＤＵの前記セットを修正させる
命令を具備し、前記出力インターバルは前記ソースクロックに依存し、訂正強度（correction magnitude）の差で出力期間と異なり、前記出力期間は前記トランスコーダの出力クロックに依存し、
前記ＭＤＵの前記取り出されたセットに関連する期間は、実質的に前記出力インターバルに相当し、
前記ＭＤＵのセットは、ＭＤＵの前記修正されたセットに関連する期間が前記出力期間に実質的に相当するように、修正される、コンピュータ読み取り可能な媒体。
【請求項５９】
実行時に前記命令は１つまたはそれ以上のコンピュータに対して、前記ＭＤＵのコンテンツに基づいて、１つまたはそれ以上のＭＤＵを追加または削除させる、請求項５８のコンピュータ読み取り可能な媒体。
【請求項６０】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、ＭＤＵの前記修正されたセットを、出力メディアデータストリームの一部として出力させる、請求項５８のコンピュータ読み取り可能な媒体。
【請求項６１】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、
前記バッファの現在の平均深さに基づいて前記訂正強度を特定させ、
前記出力インターバルを、前記訂正強度を引いた前記出力期間に等しい値として特定させる、請求項５８のコンピュータ読み取り可能な媒体。
【請求項６２】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、
前記トランスコーダにおける較正フェーズの期間の、前記バッファの平均深さの指標であるセットポイントを確立する較正動作を実行させ、
前記バッファの現在の平均深さを引いた前記セットポイントに等しいドリフト係数を算出させ、
前記訂正強度の特定は、前記ドリフト係数に基づいて前記訂正強度を特定することを備える、請求項６１のコンピュータ読み取り可能な媒体。
【請求項６３】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、前記較正フェーズの期間、前記出力期間が経過したことを前記出力クロックが示す度に、前記較正動作の１つを実行させる、請求項６１のコンピュータ読み取り可能な媒体。
【請求項６４】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、
前記ドリフト係数の絶対値が最小ドリフト閾値以上であるかを判断させ、
前記ドリフト係数の前記絶対値が前記最小ドリフト閾値以上でない場合に、前記訂正強度をゼロに特定させる、請求項６１のコンピュータ読み取り可能な媒体。
【請求項６５】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、
前記ＭＤＵの前記取り出されたセットが訂正機会に関連付けられているかを判断させ、
前記ＭＤＵの前記取り出されたセットが訂正機会に関連付けられている場合、前記訂正強度を前記ドリフト係数に特定させる、請求項６１のコンピュータ読み取り可能な媒体。
【請求項６６】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、前記ＭＤＵの前記取り出されたセットが前記訂正機会に関連付けられているかを判断させ、
機会のリストから選択された少なくとも１つの機会が満たされた際に、前記ＭＤＵの前記取り出されたセットが前記訂正機会に関連付けられていると判断することを備え、前記機会のリストは、
前記ＭＤＵの前記取り出されたセットにおける前記ＭＤＵが、プログラムクロックリファレンスに対する参照に関連付けられていない場合、
前記ＭＤＵの前記取り出されたセットにおけるＭＤＵが、不連続のプログラムクロックリファレンスに関連付けられている場合、
前記ＭＤＵの前記取り出されたセットにおけるＭＤＵが、異なるプログラムマップテーブルに関連付けられている場合、
前記ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上のＭＤＵが、プログラムマップテーブルの修正メッセージに関連付けられている場合、
ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上の連続したＭＤＵが、音声の無音（audio silence）に関連付けられている場合、
ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上の連続したＭＤＵが、黒い映像（dark video）に関連付けられている場合、及び
ＭＤＵの前記取り出されたセットにおける１つまたはそれ以上の連続したＭＤＵが、音声の無音及び黒い映像に関連付けられている場合、
を含む請求項６５のコンピュータ読み取り可能な媒体。
【請求項６７】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、
前記ドリフト係数の絶対値が最大許容ドリフト閾値以上であるかを判断させ、
前記ドリフト係数の前記絶対値が前記最大許容ドリフト閾値以上である場合に、前記訂正強度を最大ドリフト訂正値に特定させ、
前記最大ドリフト訂正値は、前記ドリフト係数よりも小さい値である、請求項６１のコンピュータ読み取り可能な媒体。
【請求項６８】
前記ＭＤＵは映像フレームを備える、請求項５８のコンピュータ読み取り可能な媒体。
【請求項６９】
実行時に前記命令は、前記映像フレームに関連付けられたタイムスタンプを修正することにより、ＭＤＵの前記セットを修正する、請求項６８のコンピュータ読み取り可能な媒体。
【請求項７０】
前記ＭＤＵは音声サンプルを備える、請求項５８のコンピュータ読み取り可能な媒体。
【請求項７１】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、１つまたはそれ以上の音声サンプルを削除することにより、ＭＤＵの前記セットを修正させる、請求項７０のコンピュータ読み取り可能な媒体。
【請求項７２】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、１つまたはそれ以上の音声サンプルを挿入することにより、ＭＤＵの前記セットを修正させる、請求項７０のコンピュータ読み取り可能な媒体。
【請求項７３】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、前記バッファの平均深さがバッファのアンダーフローポイントを下回らず、バッファのオーバーフローポイントを上回らないように、前記ＭＤＵの前記セットについての前記出力インターバルを特定させる、請求項５８のコンピュータ読み取り可能な媒体。
【請求項７４】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、前記ＭＤＵを第１の形式から第２の形式に変換させ、前記出力メディアデータストリームにおけるＭＤＵの前記セットは、前記第２の形式にフォーマットされる、請求項５８のコンピュータ読み取り可能な媒体。
【請求項７５】
前記第１の形式は、ＭＰＥＧ（Moving Pictures Experts Group）規格の形式、国際電気通信連合（ＩＴＵ）のＨ．２６１規格の形式、Ｈ．２６２規格の形式、Ｈ．２６３規格の形式、ＩＴＵのＨ．２６４規格の形式、及びシリアルデジタルインターフェース規格の形式、からなるグループから選択される、請求項７４のコンピュータ読み取り可能な媒体。
【請求項７６】
実行時に前記命令は１つまたはそれ以上のプロセッサに対して、
エンコードされたＭＤＵを含む入力マルチメディアデータストリームを受信させ、
前記エンコードされたＭＤＵをデコードすることにより前記ＭＤＵを生成させる、請求項５８のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【優先権の主張】
【０００１】
この出願は、２００７年３月１日に出願され、参照によって本明細書にその全内容が組み込まれる米国仮出願番号６０／８９２，５２２の利益を主張する。
【技術分野】
【０００２】
本開示は、マルチメディア信号処理に向けられ、より具体的には映像のエンコード及びデコードに向けられる。
【背景技術】
【０００３】
デジタルマルチメディア機能は、デジタルテレビ、デジタルダイレクト放送システム、無線通信機器、無線放送システム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、ビデオゲーム機器、ビデオゲームコンソール、携帯または衛星無線電話、及び同等のものを含む、幅広い範囲の機器に組み込まれることが出来る。デジタルマルチメディア機器は、ＭＰＥＧ−２、ＭＰＥＧ−４、またはＨ．２６４／ＭＰＥＧ−４, Part 10, Advanced Video Coding (ＡＶＣ)のような映像符号化技術を実装して、より効率的にデジタル映像データを送受信出来る。映像符号化技術は、空間的及び時間的な映像の圧縮を行い、ビデオシーケンスに内在する冗長性を低減または取り除くことが出来る。
【０００４】
ケーブル及び衛星テレビサービスのようなメディアコンテンツのディストリビュータは、種々のソースからマルチメディアコンテンツを入手する。これらのソースは、テレビ局、ラジオ局、及びその他のオリジナルマルチメディアコンテンツの提供者を含み得る。メディアコンテンツのディストリビュータは、最終消費者によって使用されるような他の機器に、オリジナルマルチメディアを生成したり再配布（re-distribution）したりすることが出来る。この再配布の前にマルチメディアデータは、入力の形式から、無線形式のような別の形式に再フォーマット（reformat）または変換され得る。この処理は通常、“トランスコード（transcoding）”と呼ばれ、トランスコーダやトランスコーダデバイスと呼ばれる処理要素によって実行される。マルチメディアデータの入力ストリームは、種々の方法でフォーマットされ、そして搬送される。例えば、入力ストリームはMoving Pictures Experts Groupトランスポートストリーム（ＭＰＥＧ−ＴＳ）としてフォーマットされ、そして非同期シリアルインターフェース（ＡＳＩ）上で搬送され得る。別の例では、入力ストリームはシリアルデジタルインターフェース（ＳＤＩ）を用いてフォーマットされ、そして搬送され得る。
【０００５】
マルチメディアコンテンツのディストリビュータは、マルチメディア放送技術を用いて、マルチメディアデータをモバイル無線契約者機器（モバイルハンドセット、またはいわゆるマルチメディア携帯電話のような）に送信しようと望むかもしれない。例えばマルチメディア放送技術は、Forward Link Only(ＦＬＯ)、Digital Multimedia Broadcasting(ＤＭＢ)、及びDigital Video Broadcasting - Handheld(ＤＶＢ−Ｈ)と呼ばれる技術を含む。無線デジタルマルチメディア放送は、マルチメディアコンテンツを、一連の放送チャネルとして、多くの契約者機器に配信し、これにより、従来のテレビのそれと同じような、マルチメディアコンテンツの選択のエクスペリエンスを提供することが出来る。各放送チャネルは、エンコードされた音声／映像ストリーム、音声／映像クリップ、またはその他の情報コンテンツを備えるデジタルデータを放送する。デジタル放送チャネルは、マルチキャストを原則に、複数のモバイル無線契約者機器に同時に配送される。デジタル放送を受信するモバイル無線契約者機器のユーザは、彼らの契約者機器を、放送チャネルの１つまたはそれ以上に、個別にチューニングする。無線契約者機器のユーザが、彼または彼女のモバイル無線契約者機器を特定の放送チャネルにチューニングすると、モバイル無線契約者機器は、その特定の放送チャネルにおけるマルチメディアデータを、ユーザに与える。
【発明の概要】
【０００６】
概して本開示は、メディアデータの入力ストリームに関連付けられたクロックと、メディアデータの出力ストリームに関連付けられたクロックとの間の、小さな差分を補正する技術を述べる。トランスコーダがメディアデータユニット（ＭＤＵ）を受信するレートを管理するクロックと、トランスコーダがＭＤＵを出力するレートを管理するクロックとの間のドリフトに起因して、トランスコーダは、トランスコーダがＭＤＵを出力するレートよりも速いまたは遅いレートで、ＭＤＵを受信し得る。トランスコーダは、訂正強度を引いた出力期間に等しい時間を占める、受信したＭＤＵのセットを特定することと、特定されたＭＤＵのセットを、このＭＤＵのセットが出力期間と等しい時間を占めるように修正することと、修正されたＭＤＵのセットを、出力ストリームの一部として出力すること、により、そのような差分を補正する。
【０００７】
この開示は、例えば入力マルチメディアデータの検査と処理によって、コンテンツギャップの検出を連続的に実行すること、及び時間ドリフトエラーを収集することを含み得る。ギャップが検出されると、本開示は、そのポイントまで蓄積された全エラーを訂正することを含み得る。時間訂正及び変換は、コンテンツの中断を防止するために、入力マルチメディアデータ内のコンテンツギャップの検出を用い得る。ＭＤＵへの修正が、タイミングの調整に使用されることが出来、従って、入力マルチメディアデータ内のコンテンツギャップを特定することにより、そのような調整は、トランスコードされたコンテンツを受信する最終消費者には気づかれないだろう。
【０００８】
一例において方法は、トランスコーダのバッファに複数のメディアデータユニット（ＭＤＵ）を、メディアソースのソースクロックに依存するレートで格納することと、前記バッファ内の前記ＭＤＵのセットについての出力インターバルを特定することと、前記バッファから前記ＭＤＵの前記セットを取り出すことと、前記ＭＤＵのコンテンツ（content）に基づいて、前記バッファから取り出された前記ＭＤＵの前記セットを修正することとを具備し、前記出力インターバルは前記ソースクロックに依存し、訂正強度（correction magnitude）の差で出力期間と異なり、前記出力期間は前記トランスコーダの出力クロックに依存し、前記ＭＤＵの前記取り出されたセットに関連する期間は、実質的に前記出力インターバルに相当し、前記ＭＤＵのセットは、ＭＤＵの前記修正されたセットに関連する期間が前記出力期間に実質的に相当するように、修正される。以下でより詳細に議論されるように、ＭＤＵのセットへの修正は、ＭＤＵのコンテンツに基づき得る。
【０００９】
別の例では、この開示は、出力クロックと、メディアデータユニット（ＭＤＵ）を格納可能なバッファと、前記バッファに前記ＭＤＵを、メディアソースのソースクロックに依存するレートで格納する受信モジュールと、前記バッファ内の前記ＭＤＵのセットについての出力インターバルを特定するインターバル特定モジュールと、前記バッファからＭＤＵの前記セットを取り出すＭＤＵ取り出しモジュールと、前記ＭＤＵのコンテンツ（content）に基づいて、前記バッファから取り出されたＭＤＵの前記セットを修正するドリフト訂正モジュールとを具備し、前記出力インターバルは前記ソースクロックに依存し、訂正強度（correction magnitude）の差で出力期間と異なり、前記出力期間はトランスコーダの出力クロックに依存し、前記ＭＤＵの前記取り出されたセットに関連付けられた期間は、実質的に前記出力インターバルに相当し、前記ドリフト訂正モジュールは、前記ＭＤＵの前記修正されたセットに関連付けられた期間が前記出力期間に実質的に相当するように修正する、トランスコーダデバイスを提供する。
【００１０】
別の例では、この開示は、バッファに複数のメディアデータユニット（ＭＤＵ）を、メディアソースのソースクロックに依存するレートで格納する手段と、前記バッファ内の前記ＭＤＵのセットについての出力インターバルを特定する手段と、前記バッファから前記ＭＤＵの前記セットを取り出す手段と、前記ＭＤＵのコンテンツ（content）に基づいて、前記バッファから取り出された前記ＭＤＵの前記セットを修正する手段とを具備し、前記出力インターバルは前記ソースクロックに依存し、訂正強度（correction magnitude）の差で出力期間と異なり、前記出力期間はトランスコーダの出力クロックに依存し、前記ＭＤＵの前記取り出されたセットに関連する期間は、実質的に前記出力インターバルに相当し、前記ＭＤＵの前記セットを修正する手段は、ＭＤＵの前記修正されたセットに関連する期間が前記出力期間に実質的に相当するように、修正する、トランスコーダデバイスを提供する。
【００１１】
この開示で述べられた技術は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせで実装され得る。ソフトウェアで実装される場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、またはデジタルシグナルプロセッサ（ＤＳＰ）のような、１つまたはそれ以上のプロセッサを用いて実行され得る。本技術を実行するソフトウェアは、まず始めにコンピュータ読み取り可能な媒体に記憶され、１つまたはそれ以上のプロセッサを用いてロードされ、実行され得る。
【００１２】
従って本開示は、実行可能な命令を備えたコンピュータ読み取り可能な媒体も、また意図している。実行時に命令は、１つまたはそれ以上のプロセッサに対して、トランスコーダのバッファに複数のメディアデータユニット（ＭＤＵ）を、メディアソースのソースクロックに依存するレートで格納させ、前記バッファ内の前記ＭＤＵのセットについての出力インターバルを特定させ、前記バッファから前記ＭＤＵの前記セットを取り出させ、前記ＭＤＵのコンテンツ（content）に基づいて、前記バッファから取り出された前記ＭＤＵの前記セットを修正させ、前記出力インターバルは前記ソースクロックに依存し、訂正強度（correction magnitude）の差で出力期間と異なり、前記出力期間は前記トランスコーダの出力クロックに依存し、前記ＭＤＵの前記取り出されたセットに関連する期間は、実質的に前記出力インターバルに相当し、前記ＭＤＵのセットは、ＭＤＵの前記修正されたセットに関連する期間が前記出力期間に実質的に相当するように、修正される。
【００１３】
あるケースでは、このコンピュータ読み取り可能な媒体は、映像符号化機器において販売される及び／または使用され得るコンピュータプログラム製品の少なくとも一部を形成し得る。このコンピュータプログラム製品はこのコンピュータ読み取り可能な媒体を含み、そしてあるケースではパッケージング要素をも含み得る。
【００１４】
１つまたはそれ以上の例の詳細が、添付図面と以下の記述において説明される。その他の特徴、目的、及び効果は、この記述及び図面から、並びに特許請求の範囲から明らかとなるだろう。
【図面の簡単な説明】
【００１５】
【図１】図１は、典型的なメディア配布システムを例示するブロック図である。
【図２】図２は、トランスコーダの典型的な詳細を例示するブロック図である。
【図３】図３は、トランスコーダにおける時間変換モジュールの典型的な詳細を例示するブロック図。
【図４】図４は、時間変換モジュールの典型的な動作を例示するフローチャートである。
【図５】図５は、時間変換モジュールにおける較正モジュールにより行われる典型的な較正動作を例示するフローチャートである。
【図６】図６は、時間変換モジュールにおけるポスト較正モジュールの、典型的なポスト較正動作を例示するフローチャート。
【発明を実施するための形態】
【００１６】
本開示は、メディアデータの入力ストリームに関連付けられたクロックと、メディアデータの出力ストリームに関連付けられたクロックとの間の、小さな差分を補正する技術を述べる。トランスコーダがメディアデータユニット（ＭＤＵ）を受信するレートを管理するクロックと、トランスコーダがＭＤＵを出力するレートを管理するクロックとの間のドリフトに起因して、トランスコーダは、トランスコーダがＭＤＵを出力するレートよりも速いまたは遅いレートで、ＭＤＵを受信し得る。トランスコーダは、訂正強度（correction magnitude）を引いた出力期間（output period）に等しい時間を占める、受信したＭＤＵのセットを特定することと、特定されたＭＤＵのセットを、このＭＤＵのセットが出力期間と等しい時間を占めるように修正すること、により、そのような差分を補正する。下記で非常に詳細に説明されるように、ＭＤＵに対する修正は、ＭＤＵのコンテンツ（content）に基づくことが出来、これにより、それが最終消費者に提供される際のＭＤＵのコンテンツについての感知出来る変化を、低減または解消し得る。
【００１７】
図１は、典型的なメディア配布システム２を例示するブロック図である。メディアソース４がマルチメディアデータのストリームをトランスコーダ６に供給するメディア配布システムの一例におけるメディア配布システム２。トランスコーダ６は、マルチメディアデータのストリームを修正し、無線マルチメディア放送技術を用いてマルチメディアコンテンツを複数の契約者機器１０Ａ〜１０Ｎ（まとめて契約者機器１０）に送信する。例えばトランスコーダ６は、Forward Link Only(ＦＬＯ)、Digital Multimedia Broadcasting(ＤＭＢ)、及びDigital Video Broadcasting - Handheld(ＤＶＢ−Ｈ)と呼ばれる技術を含む無線マルチメディア放送技術を使用し得る。
【００１８】
メディア配布システム２は、多くの他のシステムもまた本明細書で述べられた技術を使用できるように、単なる典型例に過ぎない。本開示の技術は特に放送システムにおいて有用であるが、テレビ電話をサポートするシステム、または映像符号化及び映像情報の通信をサポートする他のシステムのような、マルチメディア情報の双方向無線通信をサポートするシステムにも適用され得る。それでもなお本開示の技術は、まず無線システムにおいて使用されるものとして説明されるが、他のシステム（無線通信システムを含む）もまた、本明細書で述べられた技術から恩恵を受け得る。
【００１９】
メディア配布システム２においてメディアソース４は、１つまたはそれ以上の有線または無線リンクを介してメディアコンテンツを提供する。例えばメディアソース４は、符号化されたテレビプログラム、ビデオクリップ、映画、公告コマーシャル、ストリーミング音楽、ビデオ配信、ビデオ遠隔会議データ、及び他のメディアコンテンツを送信する衛星であり得る。別の例ではメディアソース４は、ケーブルテレビサービスのための送信ユニットであっても良い。メディアソース４によって供給されるメディアデータのストリームと、トランスコーダ６によって生成されるメディアデータのストリームは、メディアデータユニット（ＭＤＵ）を含む。本開示で使用される際、「メディアデータユニット」は、映像フレーム（video frame）、音声サンプル（audio sample）、またはその他のタイプ及び量のメディアデータを指すことが出来る。
【００２０】
メディア配布システム２においてトランスコーダ６は、メディアソース４からメディアデータのストリームを受信する。例えばトランスコーダ６は、メディアソース４からＭＰＥＧ−２（Moving Pictures Expert Group-2）トランスポートストリームを受信し得る。トランスコーダ６がメディアデータのストリームを受信する際、トランスコーダ６は、メディアデータのストリーム内のＭＤＵに基づいて、入力バッファ８にＭＤＵを一時的に保持し得る。トランスコーダ６はその後、入力バッファ８からＭＤＵを取り出し、取り出されたＭＤＵを修正し、そして修正されたＭＤＵを、１つまたはそれ以上の有線または無線リンクを介して、メディアデータのストリームとして出力し得る。例としてトランスコーダ６は、例えばＦＬＯ、ＤＭＢ、またはＤＶＢ−Ｈのような、１つまたはそれ以上の無線放送技術を用いて、または、Global System for Mobile Communications(ＧＳＭ)、符号分割多重アクセス（ＣＤＭＡ）、ＣＤＭＡ２０００（登録商標）、広帯域ＣＤＭＡ（Ｗ−ＣＤＭＡ）、CDMA 1x Evolution-Data Optimized(ＥＶ−ＤＯ)、周波数分割多重アクセス（ＦＤＭＡ）、直交周波数分割多重（ＯＦＤＭ）、時分割多重アクセス（ＴＤＭＡ）、または種々のＩＥＥＥ８０１．ｘｘ規格によって定義された無線ネットワーキングを容易にするために開発された規格の広範なファミリー、またはその他の無線または有線通信規格のような、１つまたはそれ以上の無線アクセス技術に従って、修正されたＭＤＵを出力出来る。
【００２１】
幾つかの側面では、本開示において述べられた技術は、Technical Standard TIA-1099 (the “FLO Specification”)として公開されるＦＬＯ無線インターフェース仕様書“Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast”を用いた、terrestrial mobile multimedia multicast (TM3) systemsにおいてリアルタイム映像サービスを配信するための、Enhanced H.264映像符号化に適用され得る。すなわちトランスコーダ６は、ＦＬＯの仕様等に従って、無線映像情報を送信し得る。ＦＬＯの仕様は、ビットストリームの構文と意味の定義例と、ＦＬＯ無線インターフェースに適した符号化処理の例を含む。あるいは映像は、ＤＶＢ−Ｈ（digital video broadcast-handheld）、ＩＳＤＢ−Ｔ（integrated services digital broadcast - terrestrial）、またはＤＭＢ（digital media broadcast）のような、他の規格に従って送信されても良い。
【００２２】
契約者機器１０は、トランスコーダ６によって生成された、メディアデータの修正されたストリームを受信し得る。契約者機器１０がメディアデータの修正されたストリームを受信する際、契約者機器１０は、メディアデータの修正されたストリームをデコードし、そしてデコードされたメディアデータを再生し得る。例えば、メディアデータの修正されたストリームは、テレビプログラムに相当し得る。この例では、契約者機器１０は、このテレビプログラムを表示出来る。契約者機器１０は、幅広い種々の機器であり得る。例えば契約者機器１０は、携帯無線電話、デジタルテレビ、携帯情報端末、車載機器（例えば自動車、バイク、航空機、宇宙船、トラック、鉄道、バス等）、ビデオゲームシステム、ラップトップコンピュータ、タブレットコンピュータ、パーソナルコンピュータ、テレビのセットトップボックス、パーソナルメディアプレイヤー、シアターシステム、デジタル標識、及びその他のタイプの機器であっても良い。
【００２３】
メディアソース４は、ソースクロック（例えば、メディアソース４のソースクロック１２）によって管理されるレートで、ＭＤＵを出力する。例えばメディアソース４は、１秒あたり３０映像フレームのレートで映像フレームを出力し得る。これは、ソースクロック１２によって測定される。更にトランスコーダ６は、出力クロック１４によって管理されるレートで、ＭＤＵを出力する。例えばトランスコーダ６は、１秒あたり３０映像フレームのレートで、映像フレームを出力し得る。これは出力クロック１４によって測定される。もしソース１２クロックと出力クロック１４とが正確に同期していれば（すなわち、いずれも、他方より速く作動することは無い）、トランスコーダ６は、トランスコーダ６が契約者機器１０にＭＤＵを出力するのと同じレートで、メディアソース４からＭＤＵを受信する。
【００２４】
しかしながら、ソースクロック１２と出力クロック１４は、正確には同期しないだろう。ソースクロック１２が出力クロック１４に比べて非常に速い場合、トランスコーダ６は、トランスコーダ６がＭＤＵを出力するレートよりも速いレートで、メディアソース４からＭＤＵを受信し得る。もし是正されないままであれば、入力バッファ８内のＭＤＵの数は、入力バッファ８がそれ以上未送信のＭＤＵを保持することが出来ない程度（すなわち、オーバーフローポイント）まで増加するだろう。これは、ＭＤＵの損失（loss）という結果になるだろう。同様に、ソースクロック１２が出力クロック１４に比べて非常に遅い場合、トランスコーダ６は、トランスコーダ６がＭＤＵを出力するレートよりも遅いレートで、メディアソース４からＭＤＵを受信し得る。もし是正されないままであれば、入力バッファ８内のＭＤＵの数は、入力バッファ８内に保持されたＭＤＵが送信に十分でない程度（すなわち、アンダーフローポイント）まで減少するだろう。これは、出力ストリームのギャップ（gap）という結果になるだろう。いずれのシナリオにおいても、契約者機器１０のユーザは、ＭＤＵのこの損失またはギャップを知覚することが出来るだろう。これは、ユーザのエクスペリエンスに破壊的（disruptive）な影響を与えるだろう。
【００２５】
ソースクロックと出力クロックとの間のドリフトを補正するための動作の一部として、トランスコーダ６は、一連の区別されるフェーズを進行し得る。トランスコーダ６が最初にメディアソース４からの入力ストリームを受信し始める際、トランスコーダ６は、“バッファフィル（buffer fill）”フェーズにいることが出来る。“バッファフィル”フェーズの期間、トランスコーダ６は、契約者機器１０にＭＤＵを出力することなく、入力バッファ８にメディアソース４からのＭＤＵを保持し得る。更に“バッファフィル”フェーズの期間、トランスコーダ６は、入力バッファ８が十分且つ最小限のＭＤＵの数を保持するまで、ＭＤＵを契約者機器１０に出力することなく、メディアソース４からのＭＤＵを入力バッファ８に保持し続けることが出来る。入力バッファ８が十分且つ最小限のＭＤＵの数を保持すると、“バッファフィル”フェーズは終了し、較正フェーズ（calibration phase）が開始し得る。この十分且つ最小限のＭＤＵの数は実装によって規定され得るが、概して、本明細書で説明されるような測定及び調整を容易にするのに十分なＭＤＵの数である。
【００２６】
較正フェーズの期間、トランスコーダ６はメディアソース４からＭＤＵを受信し、そして受信したＭＤＵを入力バッファ８に一時的に保持する。更に較正フェーズの期間、トランスコーダ６は、出力インターバル（output interval）が経過したと出力クロックが判断する度に、較正動作を実行し得る。この出力インターバルは、１秒またはその他の期間に等しい時間であり得る。あるいは出力インターバルは、多くのサンプルに基づいて定義されても良い。較正動作の期間、トランスコーダ６は、入力バッファ８から、入力バッファ８内の最も古いＭＤＵ（oldest MDU）のセットを取り出し得る。この最も古いＭＤＵは、ＭＤＵが受信された順番によって定義され得る。このＭＤＵのセットは、出力クロックによって測定されるような、１つの出力期間（output period）に等しい時間を占める。言い換えれば、取り出されたＭＤＵは、出力クロックによって測定されるような、１つの出力期間内で再生されるはずであった。入力バッファからＭＤＵのセットを取り出した後、トランスコーダ６は、ＭＤＵの取り出されたセットに基づいてＭＤＵを出力しうる。更に、トランスコーダ６が較正動作を実行する際、トランスコーダ６は、入力バッファ８の平均深さ（depth）を算出し得る。本開示で使用される際、入力バッファ８の“深さ”とは、入力バッファ８内における最も古いＭＤＵ（”oldest” MDU）と、入力バッファ８内における最新のＭＤＵ（”newest” MDU）との間の、出力クロックによって測定されるような、時間の長さを指す。最も古い及び最新のＭＤＵは、このＭＤＵがいつ入力バッファ８において受信されたか、に従って、例えば先入れ先出し（ＦＩＦＯ）技術に従って、定義され得る。入力バッファ８内の最も古いＭＤＵとは、入力バッファ８における他のあらゆるＭＤＵの前に存在すべき、入力バッファ８内のＭＤＵである。入力バッファ８内の最新のＭＤＵとは、入力バッファ８内における他の全てのＭＤＵの後に存在すべき、入力バッファ８内のＭＤＵである。
【００２７】
較正動作の終了時、トランスコーダ６は、入力バッファ８の平均深さが安定的かどうかを判断し得る。トランスコーダ６は、入力バッファ８の平均深さが、特定の期間内に一定のパーセンテージを超えて変化しなかった場合に、入力バッファ８の平均深さは安定的であると判断し得る。もし入力バッファ８の平均深さが安定的であれば、トランスコーダ６は、入力バッファ８の平均深さにセットポイント（setpoint）を確立することが出来、較正フェーズは完了する。
【００２８】
較正フェーズが完了した後、トランスコーダ６は、メディアソース４からのＭＤＵの受信を継続することが出来、そして受信したＭＤＵの入力バッファ８への保持を継続し得る。更に、較正フェーズが完了した後、トランスコーダ６は、出力期間が経過したと出力クロックが判断する度に、ポスト較正動作（post-calibration operation）を実行する。ポスト較正動作の一部としてトランスコーダ６は、訂正強度（correction magnitude）を特定し得る。以下で詳細に説明するようにトランスコーダ６は、入力バッファ８の現在の深さを差し引いたセットポイントに少なくとも近似的に等しいドリフト係数（drift factor）に基づいて、訂正強度を特定し得る。訂正強度の特定の後、トランスコーダ６は、最も古いＭＤＵのセットを入力バッファ８から取り出し得る。この取り出されたＭＤＵのセットは、１つの出力インターバルに等しい時間を占め、また特定された訂正強度を引いた１つの出力期間に対応し得る。入力バッファ８からＭＤＵのセットを取り出した後、トランスコーダ６は、ＭＤＵの修正されたセットが１つの出力期間に等しい期間に対応するよう、ＭＤＵの取り出されたセットを修正し得る。トランスコーダ６は、取り出されたＭＤＵのセットにおいて存在するＭＤＵ間の時間を修正する、または取り出されたＭＤＵのセットにおけるＭＤＵを選択的に削除する、１度またはそれ以上の動作を実行することにより、ＭＤＵの取り出されたセットを修正し得る。更に、ＭＤＵに対するこれらの調整は、契約者機器を操作する最終消費者に対してコンテンツの中断が防止されるよう、コンテンツに基づき得る。
【００２９】
トランスコーダ６はその後、１つの出力期間が経過したことを出力クロックが示す度に、ＭＤＵのセットの１つを出力し得る。例えばトランスコーダ６は、マルチメディアデータのストリームを生成出来、そして無線物理層変調スキームに従ってマルチメディアデータのストリームを変調し得る。例えばトランスコーダ６は、Forward Link Only(ＦＬＯ)、Digital Multimedia Broadcasting(ＤＭＢ)、またはDigital Video Broadcasting - Handheld(ＤＶＢ−Ｈ)のような、１つまたはそれ以上の無線放送技術を用いて、または、Global System for Mobile Communications(ＧＳＭ)、符号分割多重アクセス（ＣＤＭＡ）、ＣＤＭＡ２０００（登録商標）、広帯域ＣＤＭＡ（Ｗ−ＣＤＭＡ）、CDMA 1x Evolution-Data Optimized(ＥＶ−ＤＯ)、周波数分割多重アクセス（ＦＤＭＡ）、直交周波数分割多重（ＯＦＤＭ）、時分割多重アクセス（ＴＤＭＡ）、または種々のＩＥＥＥ８０１．ｘｘ規格によって定義された無線ネットワーキングを容易にするために開発された規格の広範なファミリーのような、１つまたはそれ以上の無線アクセス技術に従って、多重化されたマルチメディアデータのストリームを変調出来る。トランスコーダ６は、その後、マルチメディアデータの変調されたストリームを、契約者機器１０に送信し得る。
【００３０】
図２は、トランスコーダ６の典型的な詳細を例示するブロック図である。図２の例に示すようにトランスコーダ６は、受信モジュール２０を含む。受信モジュール２０は、メディアソース４からＭＤＵを受信する。受信モジュール２０がＭＤＵを受信すると、受信モジュール２０は入力バッファ８にＭＤＵを持たせる。幾つかの場合では、受信モジュール２０は、マルチメディアデータのストリームに含まれる、エンコードされたＭＤＵを受信し得る。これらの例では、受信モジュール２０は、ＭＤＵを入力バッファ８に持たせる前に、エンコードされたＭＤＵをデコードし得る。
【００３１】
トランスコーダ６の出力クロック１４は、パルスを出力することによって、出力期間が経過したことを示す。例えば出力期間が１秒の場合、出力クロック１４は、１秒経過の後にパルスを出力することによって、１秒が経過したことを示し得る。出力クロック１４は、Global Positioning System(ＧＰＳ)またはその他の高精度の計時システム（図示せず）に同期し得る。例えば出力クロック１４は、軌道ＧＰＳ衛星から信号を受信し、これらの信号を用いて正確に現在時刻を測定し得る。別の例では、出力クロック１４は、ＧＰＳに同期した他の機器（図示せず）からメッセージを受信することにより同期が図られ得る。ＧＰＳまたはその他の正確な計時システムと同期を図る結果、出力クロック１４は非常に正確となり得る。
【００３２】
トランスコーダ６における時間変換モジュール２６が出力クロック１４からパルスを受信すると、時間変換モジュール２６は、トランスコーダ６が“バッファフィル”フェーズにあるかどうかを判断し得る。トランスコーダ６がメディアソース４からのメディアデータのストリームの受信を最初に開始する際、トランスコーダ６は“バッファフィル”フェーズにあることが出来る。時間変換モジュール２６は、トランスコーダ６が「バッファフィル」フェーズにあるとフラグが示している場合、またはバッファが十分であることまたは深さのその他のいくつかの指標により、トランスコーダ６が“バッファフィル”フェーズにあると、時間変換モジュール２６は判断出来る。
【００３３】
トランスコーダ６が“バッファフィル”フェーズにあると時間変換モジュール２６が判断した場合、時間変換モジュール２６は、入力バッファ８の深さを測定する。本開示で使用される際、入力バッファ８の“深さ”とは、出力クロック１４により測定される、入力バッファ８における最も古いＭＤＵと、入力バッファ８における最新のＭＤＵとの間の時間長を指す。入力バッファ８内の最も古いＭＤＵとは、入力バッファ８における他のあらゆるＭＤＵの前に存在すべき入力バッファ８内のＭＤＵである。入力バッファ８内の最新のＭＤＵとは、入力バッファ８内における他の全てのＭＤＵの後に存在すべき入力バッファ８内のＭＤＵである。一例では、入力バッファ８の“深さ”は、出力クロック１４によって測定されるような、現在入力バッファに何秒に相当するＭＤＵが保持されているか、の指標を含み得る。
【００３４】
更に、“バッファフィル”フェーズの期間、時間変換モジュール２６は、入力バッファ８の平均深さが最小バッファ深さ以上であるかどうかを判断する。例えば、最小バッファ深さは、２つの完全な出力期間である（例えば２秒）、出力クロック１４により測定されるように、入力バッファ８の最も古いＭＤＵと、入力バッファ８の最新のＭＤＵとの間の時間の長さが２秒）。もし、入力バッファ８の平均深さが最小バッファ深さ以上でない（すなわち、より小さい）と時間変換モジュール２６が判断すれば、時間変換モジュール２６は、出力クロック１４からの次のパルスまで待つことが出来る。他方、もし、入力バッファ８の平均深さが最小バッファ深さ以上であれば、時間変換モジュール２６は、“バッファフィル”フェーズが完了したことを示すフラグをセットし得る。
【００３５】
もし、出力クロック１４からのパルスの受信の後、トランスコーダ６が“バッファフィル”フェーズでないと時間変換モジュール２６が判断すれば、時間変換モジュール２６は、トランスコーダ６が較正フェーズにあるかどうかを判断し得る。時間変換モジュール２６は、トランスコーダ６が較正フェーズにあるとフラグが示しているかどうかを判断することにより、または別の手段により、トランスコーダ６が較正フェーズにあることを判断出来る。もし、トランスコーダ６が較正フェーズにあると時間変換モジュール２６が判断すれば、時間変換モジュール２６は、較正動作を実行し得る。以下で詳細に説明するように、時間変換モジュール２６が較正動作を実行する度に、時間変換モジュール２６は、入力バッファ８の平均深さを算出し、入力バッファ８から１つの出力期間に相当するＭＤＵを取り出す。入力バッファ８の平均深さが安定的だと時間変換モジュール２６が判断した場合、較正フェーズは完了し、入力バッファ８の平均深さにセットポイントがセットされる。時間変換モジュール２６は、その後、取り出されたＭＤＵをデータ変換モジュール２８に供給する。
【００３６】
他方、時間変換モジュール２６が出力クロック１４からパルスを受信した際に、トランスコーダ６が較正フェーズでない、または“バッファフィル”フェーズでない、と時間変換モジュール２６が判断すれば、時間変換モジュール２６は、ポスト較正動作を実行する。以下で詳細に説明するように、ポスト較正動作の期間、時間変換モジュール２６は、入力バッファ８内のＭＤＵのセットについての出力インターバルを特定する。更に時間変換モジュール２６は、入力バッファ８からＭＤＵのセットを取り出す。入力バッファ８から取り出されたＭＤＵのセットは、ＭＤＵのセットのめいめいにつき特定された出力インターバルと実質的に等しい期間に対応する。更に、ポスト較正動作の期間、時間変換モジュール２６は、出力期間に実質的に等しくない期間をしめるＭＤＵのセットの１つまたはそれ以上を修正し得る。時間変換モジュール２６は、ＭＤＵの修正されたセットを正しい出力期間に対応させるために、ＭＤＵのセットの１つの中の１つまたはそれ以上のＭＤＵを選択的に加え、または削除することにより、またはＭＤＵのセットの１つの中のＭＤＵ間の時間を修正することによって、ＭＤＵのセットを修正し得る。そのような修正の実行の後、時間変換モジュール２６は、修正されたまたは修正されていないＭＤＵのセットを、データ変換モジュール２８に供給し得る。時間変換モジュール２６がポスト較正動作を完了すると、時間変換モジュール２６は、出力クロック１４からの次のパルスを待つことができる。
【００３７】
データ変換モジュール２８が時間変換モジュール２６からＭＤＵのセットを受信すると、データ変換モジュール２８は、ＭＤＵのメディアデータを第１の形式から第２の形式へ変換して、データを効果的に“トランスコード”し得る。例えばデータ変換モジュール２８は、ＭＤＵ内のメディアデータを、ＭＰＥＧ−２データから、QUALCOMM Incorporated of San Diego, California によって公表されたMediaＦＬＯTMシステムで使用されるデータに変換することが出来る。別の例では、データ変換モジュール２８は、ＭＤＵ内のメディアデータを、シリアルデジタルインターフェース形式（例えば、American National Standards Institute/Society of Motion Picture and Television Engineers (“ANSI/SMPTE”) Serial Digital Interface 259M, 125M, 272M, etc）から、別の形式に変換しても良い。データ変換モジュール２８は、ＭＤＵのセットを、第１の形式から第２の形式に、固定された（fixed）期間で変換し得る。データ変換モジュール２８がＭＤＵのセットを第１の形式から第２の形式に変換した後、データ変換モジュール２８は、変換されたＭＤＵを出力バッファ３０に持たせ得る。
【００３８】
データ変換モジュール２８はまた、ＭＤＵを、それらが入力バッファ８にエントリする前に変換し得ることは、更に着目すべきである。このシナリオでは、時間変換モジュール２６は、ＭＤＵの修正されたセットを、直接出力バッファ３０に出力出来る。
【００３９】
出力モジュール３２が出力クロック１４からパルスを受信すると、出力モジュール３２は、出力バッファ３０における、１つの出力期間に相当する最も古いＭＤＵを特定し得る。ＭＤＵの特定の後、出力モジュール３２は、特定されたＭＤＵを出力バッファ３０から取り出し得る。出力モジュール３２はその後、取り出されたＭＤＵを、出力ストリームの一部として、契約者機器１０に送信し得る。別の実装では、出力バッファ３２と入力バッファ８は、共通のメモリ内の分離されたストレージ空間であっても良く、または場合によってはメモリ内の共通のストレージ空間であっても良い。
【００４０】
図３は、トランスコーダ６における時間変換モジュール２６の典型的な詳細を例示するブロック図である。図３の例に示すように、時間変換モジュール２６は、フェーズ特定モジュール７０を備えている。フェーズ特定モジュール７０は、各出力期間の度に、出力クロック１４からパルスを受信し得る。フェーズ特定モジュール７０が出力クロック１４からパルスを受信すると、フェーズ特定モジュール７０は、トランスコーダ６の現在のフェーズを特定する。もしフェーズ特定モジュール７０が、トランスコーダ６の現在のフェーズとして“バッファフィル”ステージを特定すると、フェーズ特定モジュール７０は、時間変換モジュール２６内のバッファフィルモジュール７２に対して、“バッファフィル”動作を実行するよう命令し得る。もしフェーズ特定モジュール７０が、トランスコーダ６の現在のフェーズとして較正フェーズを特定すると、フェーズ特定モジュール７０は、較正モジュール７４に対して較正動作を実行するよう命令し得る。そのほかには、もしフェーズ特定モジュール７０が、トランスコーダ６の現在のフェーズとしてポスト較正フェーズを特定すると、フェーズ特定モジュール７０は、ポスト較正モジュール７６に対してポスト較正動作を実行するよう命令し得る。
【００４１】
フェーズ特定モジュール７０がバッファフィルモジュール７２に対して“バッファフィル”動作を実行するよう命令すると、バッファフィルモジュール７２は、入力バッファ８の平均深さを測定し得る。入力バッファ８の平均深さを測定するために、バッファフィルモジュール７２は例えば、出力クロック１４によって測定されるように、“バッファフィル”フェーズの開始からどれだけの数の出力期間が経過したか、を示すパルスカウンタ７３を維持する。更にバッファフィルモジュール７２は、“バッファフィル”フェーズの期間に入力バッファ８の全ての測定された深さの和を示すアグリゲート深さ値７５を維持し得る。本例では、バッファフィルモジュール７２は、入力バッファ８の現在の深さを測定すること、アグリゲート深さ値７５に入力バッファ８の現在の深さを加算すること、及びこの和をパルスカウンタ７３で割ること、によって、入力バッファ８の平均深さを算出し得る。この方法での入力バッファ８の平均深さの算出は、ジッタによる一時的な効果を最小限にする。
【００４２】
バッファフィルモジュール７２が入力バッファ８の平均深さを算出した後、バッファフィルモジュール７２は、入力バッファ８の平均深さが最小バッファ深さ以上であるかどうかを判断し得る。もし、入力バッファ８の平均深さが最小バッファ深さ以上であるとバッファフィルモジュール７２が判断すると、バッファフィルモジュール７２は、“バッファフィル”フェーズが完了したことを示すフラグをセットすることが出来る。そうでなければ、もし入力バッファ８の平均深さが最小バッファ深さ以上で無い（すなわち、より小さい）とバッファフィルモジュール７２が判断すれば、バッファフィルモジュール７２は、更なる動作を実行しない。このようにして、バッファフィルモジュール７２は、時間変換モジュール２６内の他のモジュールが入力バッファ８からのＭＤＵの取り出しを開始する前に、入力バッファ８が十分な数のＭＤＵを含むことを確実に出来る。
【００４３】
フェーズ特定モジュール７０が較正モジュール７４に対して較正動作の実行を命令すると、較正モジュール７４は較正動作を実行する。較正動作の一部として較正モジュール７４は、パルスカウンタ７３をインクリメントし得る。パルスカウンタ７３のインクリメントの後、較正モジュール７４は、入力バッファ８の現在の深さを測定し得る。較正モジュール７４はその後、入力バッファ８の現在の深さを、アグリゲート深さ値７５に加算し得る。次に較正モジュール７４は、アグリゲート深さ値７５をパルスカウンタ７３で割ることにより、入力バッファ８の平均深さを算出し得る。
【００４４】
入力バッファ８の平均深さの算出の後、較正モジュール７４は、入力バッファ８の平均深さが安定的かどうかを判断し得る。較正モジュール７４は、平均深さがある期間において十分な量だけ変化しなかった場合に、平均深さは安定的であると判断し得る。例えば、もし平均深さが、６０秒の間に１マイクロ秒を超えるだけ変化しなければ、較正モジュール７４は、平均深さは安定的と判断し得る。
【００４５】
もし較正モジュール７４が、平均深さは安定的と判断すれば、較正モジュール７４は、平均深さに等しいセットポイントを確立し得る。このようにして、セットポイントは、較正フェーズの期間の入力バッファ８の平均深さの指標（measure）となる。較正モジュール７４はその後、較正フェーズが完了したことを示すフラグをセットし得る。較正フェーズは今、完了したので、平均深さが安定的である値にセットポイントが確立（すなわち「セット」）される。再度、もし、特定の期間内にある（例えば予め定められた）パーセンテージを超えて変化しなければ、入力バッファ８の平均深さは安定的と判断され得る。
【００４６】
他方、もし較正モジュール７４が、平均深さは安定的でないと判断すれば（例えば、ある期間内に平均深さが十分な量だけ変化したと判断すれば）、較正モジュール７４は平均深さにセットポイントを確立せず、較正フェーズが完了したことを示すフラグをセットしない。従って較正フェーズは完了せず、トランスコーダ６は較正フェーズにとどまる。
【００４７】
次に較正モジュール７４は、出力クロック１４によって測定される１つの出力期間に相当する、入力バッファ８における最も古いＭＤＵを、入力バッファ８から取り出し得る。例えば、もし５０個のＭＤＵを表示するのに、出力クロック１４によって測定されるような、１つの出力期間を要する場合、時間変換モジュール２６は、入力バッファ８内の５０個の最も古いＭＤＵを取り出す。較正モジュール７４がこれらのＭＤＵを入力バッファ８から取り出した後、較正モジュール７４は、これらのＭＤＵをデータ変換モジュール２８に供給し得る。
【００４８】
フェーズ特定モジュール７０がポスト較正モジュール７６にポスト較正動作を実行するよう命令すると、ポスト較正モジュール７６は、ポスト較正動作を実行する。ポスト較正動作を実行するために、ポスト較正モジュール７６内のインターバル特定モジュール８２が出力インターバルを特定する。図３の例では、インターバル特定モジュール８２は、ドリフト係数を算出するドリフト算出モジュール８０を含む。ドリフト算出モジュール８０は、パルスカウンタ７３をインクリメントすることによってドリフト係数を算出し得る。ドリフト算出モジュール８０はその後、入力バッファ８の現在の深さを測定することと、入力バッファ８の測定された深さをアグリゲート深さ値７５に加算することとによって、アグリゲート深さ値７５を更新し得る。次にドリフト算出モジュール８０は、パルスカウンタ７３に対するアグリゲート深さ値７５の商を算出することにより（例えば、ドリフト算出モジュール８０は、アグリゲート深さ値７５をパルスカウンタ７３で割る）、入力バッファ８の平均深さを算出し得る。ドリフト算出モジュール８０はその後、セットポイントから平均深さを減算することによって、ドリフト係数を算出し得る。
【００４９】
上記のように、メディアソース４のクロック（すなわち、ソースクロック１２）が完全に正確である際には、トランスコーダ６は、出力クロック１４によって測定されるような出力期間ごとに、メディアソース４から１つの出力期間の量のＭＤＵを受信する。しかしながら、もしソースクロックが出力クロック１４に比べて速ければ、メディアソース４は出力期間のたびに（出力クロック１４によって測定される）、１つより多い出力期間の量のＭＤＵを、トランスコーダ６に供給する。ドリフト補正が無い場合、トランスコーダ６は出力期間の度に、１つの出力期間に相当する量のＭＤＵを出力する。従ってトランスコーダ６は、トランスコーダ６が１つの出力期間に出力するより多くのＭＤＵを、１つの出力期間にメディアソース４から受信している。そのため、時間が経てば、ソースクロックが出力クロック１４に比べて非常に速い場合、入力バッファ８内のＭＤＵの数が増加する傾向にある。この増加は、入力バッファ８の現在の平均深さが安定的なセットポイントから減算されると、負のドリフト係数によって反映される。同様に、ソースクロック１２が出力クロック１４に比べて遅ければ、メディアソース４は、出力期間のたびに（出力クロック１４によって測定される）、１つより少ない出力期間に相当する量のＭＤＵを、トランスコーダ６に供給する。
【００５０】
ドリフト補正が無い場合、トランスコーダ６は、出力期間の度に、１つの出力期間に相当する量のＭＤＵを出力する。従ってトランスコーダ６は、トランスコーダ６が１つの出力期間に出力するよりも少ないＭＤＵを、１つの出力期間にメディアソース４から受信している。そのため、時間が経てば、ソースクロックが出力クロック１４に比べて非常に遅い場合、入力バッファ８内のＭＤＵの数が減少する傾向にある。この減少は、入力バッファ８の現在の平均深さが安定的なセットポイントから減算されると、正のドリフト係数によって反映される。
【００５１】
ドリフト算出モジュール８０がドリフト係数を算出した後、インターバル特定モジュール８２におけるドリフト閾値モジュール８４は、ドリフト係数の絶対値が最小ドリフト閾値以上であるかを判断し得る。最小ドリフト閾値は、ドリフト訂正が実行され得るより前のドリフトの最小値を示す値（すなわち絶対値）である。例えば、最小ドリフト閾値は３０ミリ秒に等しくても良い。もし、ドリフト係数の絶対値が最小ドリフト閾値以上でない（言い換えれば、未満）と、ドリフト閾値モジュール８４が判断すれば、ドリフト閾値モジュール８４は、訂正強度（correction magnitude）をゼロであると特定し得る。ドリフト閾値モジュール８４はその後、１つの出力期間から、特定された訂正強度を減じることにより、出力インターバルを算出し得る。出力インターバルは、訂正強度を引いた１つの出力期間に等しいから、本シナリオでは、ドリフト閾値モジュール８４は、１つの出力期間の出力インターバルを特定する。このようにして、少しの量のドリフトのみが蓄積されている場合には、ポスト較正モジュール７６はドリフトの補正を試みない。
【００５２】
そうでなければ、もしドリフト係数の絶対値が最小ドリフト訂正時間以上であるとドリフト閾値モジュール８４が判断すれば、インターバル特定モジュール８２における機会検出モジュール８６が、１つの出力期間に等しい時間を占める入力バッファ８における最も古いＭＤＵのセットが、“訂正機会（correction opportunity）”に関連付けられているかを判断し得る。本開示で使用される際、用語“訂正機会”とは、ユーザがドリフト訂正に気づくことができないであろう、メディアデータのストリーム内のＭＤＵのセットを指す。
【００５３】
訂正機会は、ＭＤＵの実際のコンテンツ（content）によって決められ得る。例えば、ＭＤＵの最も古いセットがプログラムクロックリファレンスに対する参照に関連付けられていない場合、ＭＤＵの最も古いセットにおけるＭＤＵが不連続のプログラムクロックリファレンスに関連付けられている場合、ＭＤＵの最も古いセットにおけるＭＤＵが異なるプログラムマップテーブルに関連付けられている場合、１つまたはそれ以上の連続したＭＤＵが音声の無音（audio silence）及び／または黒い映像（dark video）または映像が無いもの（no video）に相当する場合、またはＭＤＵの最も古いセット内の１つまたはそれ以上のＭＤＵがプログラムマップテーブルの修正メッセージに関連付けられている場合、に入力バッファ８内の最も古いＭＤＵは訂正機会を示し得る。もし機会検出モジュール８６が、ＭＤＵの最も古いセットが訂正機会に関連付けられていると判断すれば、機会検出モジュール８６は、訂正強度をドリフト係数に特定し得る。機会検出モジュール８６はその後、特定された訂正強度を、ドリフト係数を引いた１つの出力期間から減じることで、出力インターバルを算出し得る。このようにして、ポスト較正モジュール７６は、ユーザがドリフト訂正に気づかないであろう時に、蓄積されたドリフトの全てにつき補正を行う。
【００５４】
ＭＤＵの最も古いセットが訂正機会を示していないと機会検出モジュール８６が判断した場合、インターバル特定モジュール８２における部分訂正モジュール８８は、ドリフト係数の絶対値が最大許容ドリフト閾値以上であるかを判断し得る。最大許容ドリフト閾値は、ドリフト訂正の実行の前に生じ得る最大のドリフト量を示す値である。例えば、最大許容ドリフト閾値は２５０ミリ秒に等しいかもしれない。本例では、２５０ミリ秒が考慮すべきドリフト量を示す。例えばＭＰＥＧ−２規格によれば、２７ＭＨｚのソースクロックは、１秒の間に３０マイクロ秒を超えてドリフトしてはならない。このドリフトの最大のレートにおいて、完全に正確な時間を保ったクロックからソースクロックが２５０ミリ秒だけドリフトするには、ほぼ２時間全てを要するだろう。もし、ドリフト係数の絶対値が最大許容ドリフト閾値以上でない（すなわち、未満）、と部分訂正モジュール８８が判断すれば、部分訂正モジュール８８は、訂正強度をゼロと特定し得る。出力インターバルは、訂正強度を引いた出力期間に等しいから、部分訂正モジュール８８は、本シナリオでは、１つの出力期間の出力インターバルを特定する。
【００５５】
他方、もしドリフト係数の絶対値が最大許容ドリフト閾値以上であると部分訂正モジュール８８が判断すれば、部分訂正モジュール８８は、訂正強度を最大ドリフト訂正値として特定し得る。最大ドリフト訂正値は、ドリフト係数よりも小さい値である。例えば、最大ドリフト訂正値は、１５ミリ秒に等しいかもしれない。出力インターバルは、訂正強度を引いた１つの出力期間に等しいので、ドリフト閾値モジュール８４は、本例では、１５ミリ秒を引いた１つの出力期間の出力インターバルを特定する。
【００５６】
インターバル特定モジュール８２が出力インターバルを特定した後、ポスト較正モジュール７６内のＭＤＵ取り出しモジュール９６は、出力クロック１４によって測定されるような出力インターバルに等しい期間を占める、最も古いＭＤＵのセットを、入力バッファ８から取り出す。ＭＤＵ取り出しモジュール９６が入力バッファ８からこのＭＤＵのセットを取り出した後、ポスト較正モジュール７６内のドリフト訂正モジュール９０は、修正されたＭＤＵのセットが、出力クロック１４によって測定されるような１つの出力期間に等しい時間を占めるように、ＭＤＵのセットを修正し得る。ＭＤＵのセットを修正するために、ドリフト訂正モジュール９０は、ＭＤＵの取り出されたセット内に存在する個々のＭＤＵ間の時間を修正するか、または取り出されたＭＤＵの存在する個々のＭＤＵを選択的に削除する、１つまたはそれ以上の動作を実行し得る。ドリフト訂正モジュール９０がＭＤＵを修正すると、ドリフト訂正モジュール９０は、修正されたＭＤＵを、データ変換モジュール２８に供給し得る。
【００５７】
ドリフト訂正モジュール９０がＭＤＵのセットを修正する方法は、ＭＤＵのセットに含まれるメディアデータのタイプに依存し得る。例えばＭＤＵは、線形パルス符号変調音声サンプルであり得る。この例では、ＭＤＵ取り出しモジュール９６は、訂正強度を引いた１つの出力期間を占める音声サンプルのセットを、入力バッファ８から取り出し得る。更に本例では、ドリフト訂正モジュール９０は、修正された音声サンプルのセットが、出力クロック１４によって測定されるような１つの出力期間に等しい時間を占めるように、取り出された音声サンプルのセットを修正する音声修正モジュール９０を含む。
【００５８】
もし、取り出された音声サンプルのセットが１つの出力期間未満の時間を占める場合、音声修正モジュール９２は、十分な数の無声サンプル（silent sample）を音声サンプルの取り出されたセットに加えて、音声サンプルの組み合わせセットが、出力クロック１４によって測定されるような１つの出力期間に等しい時間を占めるようにする。再生の際には、無声サンプルは、契約者機器１０に対して、訂正強度に等しい時間インターバルの間、音を再生させない。無声サンプルを取り出されたサンプルに加えた後、音声修正モジュール９２は、データ変換モジュール２８に音声サンプルの組み合わせセットを供給し得る。本方法では、時間変換モジュール２６が、訂正強度の期間だけ続く沈黙の期間（period of silence）を注入する。もし音声修正モジュール９２が、可聴音を含む音声サンプルのセットに無声サンプルを加えた場合、無声サンプルは、リスナーに知覚可能な沈黙の期間を生じさせ得る。しかしながら、ドリフト訂正は一般的に、可聴音が無い場合の訂正機会において生じるから、この期間の沈黙は、リスナーには気づかれないだろう。このように、コンテンツの認識（recognition）は、感知させない方法でドリフトを調整するやり方でのＭＤＵの調整に役立つことが出来る。ドリフト訂正が訂正機会以外の時間で起きる場合、可聴音があり得る。従って、リスナーは、沈黙の期間を感知することが出来るだろう。しかしながら、最大ドリフト訂正値は、全ドリフト係数よりも小さいので、沈黙の期間は比較的短く、リスナーのエクスペリエンスを大きく妨げるものではないだろう。
【００５９】
他方、もし取り出された音声サンプルのセットが、１つより大きい出力期間に等しい時間を占める場合、音声修正モジュール９２は、取り出された音声サンプルのセットから十分な数の音声サンプルを削除することで、音声サンプルの結果として得られるセットが、出力クロック１４によって測定されるような１つの出力期間に等しい時間を占めるようにし得る。取り出された音声サンプルのセットから音声サンプルを削除した後、音声修正モジュール９２は、結果として得られた音声サンプルのセットを、データ変換モジュール２８に供給し得る。もし音声修正モジュール９２が、可聴音を含む音声サンプルのセットから音声サンプルを削除する場合、その結果は、種々の方法でリスナーに感知され得る。例えば、もし音声修正モジュール９２が、音声サンプルのセット内の音声サンプルを定期的に削除する場合、音声サンプルの全体的な周波数は高くなるだろう。その結果、リスナーは、結果として得られる音声サンプルのセットが、オリジナルの音声サンプルのセットよりも高いピッチ（pitch）を有するように感知するかもしれない。別の例では、もし音声修正モジュール９２が、音声サンプルのセットの始めから、または終わりから、音声サンプルを削除する場合、リスナーは、音声サンプルのセットと、前のまたは次の音声サンプルのセットとの間の非連続性のため、音声サンプルのセットの始めまたは終わりにおいて、チャープ（chirp）を感知するかもしれない。もし音声修正モジュール９２が、可聴音を含まない音声サンプルのセットから音声サンプルを削除する場合には、リスナーは、音声修正モジュール９２がサンプルを削除したことを感知できないだろう。
【００６０】
別の例では、ＭＤＵは映像フレームであり得る。この例では、ＭＤＵ取り出しモジュール９６は、訂正強度を引いた１つの出力期間に等しい時間を占める映像フレームのセットを、入力バッファ１０から取り出し得る。更に本例では、ドリフト訂正モジュール９０は、修正された映像フレームのセットが、出力クロック１４によって測定されるような１つの出力期間に等しい時間を占めるように、取り出された映像フレームのセットを修正する映像修正モジュール９４を含む。
【００６１】
もし、取り出された映像フレームが、１つの出力期間より小さい時間を占める場合、映像修正モジュール９４は、タイムスタンプが映像フレームのデコーダに対して、取り出された映像フレームのセット内の映像フレームを１つの出力期間にデコードして再生するよう命令するように、取り出された映像フレームのセットにおける映像フレーム上にタイムスタンプを生成、または修正し得る。このことは、各映像フレーム間に、より長い時間があることを意味する。例えば、もし取り出された映像フレームの各々がタイムスタンプに関連付けられていれば、映像修正モジュール９４は、訂正強度を、取り出された映像フレームのセット内の映像フレーム数で割り、その商を各タイムスタンプに加える。
【００６２】
同様に、もし取り出された映像フレームのセットが１つの出力期間より大きい時間を占める場合、映像修正モジュール９４は、タイムスタンプが映像フレームのデコーダに対して、取り出された映像フレームのセット内の映像フレームを１つの出力期間にデコードして再生するよう命令するように、取り出された映像フレームのセットにおける映像フレーム上にタイムスタンプを生成、または修正し得る。このことは、各映像フレーム間に、より短い時間があることを意味し得る。含まれる短い時間を仮定し、映像フレームが除去されずまたは加えられないとすると、映像フレームのペースが映像フレームのオリジナルのペースと異なることを映像フレームの視聴者が感知しうることは起こりそうにない。
【００６３】
図４は、時間変換モジュール２６の典型的な動作を例示するフローチャートである。まず、時間変換モジュール２６内のフェーズ特定モジュール７０が、出力クロック１４からパルスを受信する（１００）。フェーズ特定モジュール７０は、出力期間につき１度、出力クロック１４からパルスを受信し得る。フェーズ特定モジュール７０が出力クロック１４からパルスを受信すると、フェーズ特定モジュール７０は、トランスコーダ６が“バッファフィル”フェーズにあるかを判断する（１０２）。
【００６４】
もしトランスコーダ６が“バッファフィル”フェーズであれば（１０２で“ＹＥＳ”）、時間変換モジュール２６内のバッファフィルモジュール７２は、入力バッファ８の現在の深さを測定し得る（１０４）。バッファフィルモジュール７２が入力バッファ８の現在の深さを測定する際、バッファフィルモジュール７２は、入力バッファ８の現在の深さを、入力バッファ８の現在の平均深さとして算出し得る。次にバッファフィルモジュール７２は、入力バッファ８の現在の深さが、最小バッファ深さ以上であるかを判断し得る（１０６）。もし、入力バッファ８の現在の深さが最小バッファ深さ以上であれば（１０６で“ＹＥＳ”）、バッファフィルモジュール７２は、“バッファフィル”フェーズの完了を示すフラグをセットし得る（１０８）。もし入力バッファ８の現在の深さが最小バッファ深さ以上でなければ（１０６で“ＮＯ”）、処理は別の出力クロックパルスの受信に続く（１００）。バッファフィルモジュール７２がこのフラグをセットするか、またはバッファフィルモジュール７２が、入力バッファ８の現在の深さが最小バッファ深さ以上でない（すなわち、未満）と判断した後、時間変換モジュール２６はループバックし、別のパルスが出力クロック１４から受信されるまで待つ（１００）。
【００６５】
もしフェーズ特定モジュール７０が、トランスコーダ６は“バッファフィル”フェーズに無いと判断すれば（１０２で“ＮＯ”）、フェーズ特定モジュール７０は、トランスコーダ６が較正フェーズにあるかを判断し得る（１１０）。もしフェーズ特定モジュール７０が、トランスコーダ６は較正フェーズにあると判断すれば（１１０で“ＹＥＳ”）、較正モジュール７４は較正動作を実行し得る（１１２）。例となる較正動作は、図５に関連して以下で説明される。較正モジュール７４が較正動作を実行の後、時間変換モジュール２６は、再度、別のパルスが出力クロック１４から受信されるまで待ち得る（１００）。
【００６６】
他方、もしフェーズ特定モジュール７０が、トランスコーダ６は較正フェーズに無いと判断すれば（１１０で“ＮＯ”）、ポスト較正モジュール７６が、ポスト較正動作を実行し得る（１１４）。例となるポスト較正動作は、以下で図６と関連して説明される。ポスト較正モジュール７６の較正動作の実行の後、時間変換モジュール２６は、再度、別のパルスが出力クロック１４から受信されるまで待ち得る（１００）。
【００６７】
図５は、時間変換モジュール２６内の較正モジュール７４によって実行される、典型的な較正動作を例示するフローチャートである。較正モジュール７４が較正動作を開始すると、較正モジュール７４は、パルスカウンタ７３をインクリメントし得る（１３０）。次に較正モジュール７４は、入力バッファ８の現在の深さを測定し得る（１３２）。入力バッファ８の現在の深さの測定の後、較正モジュール７４は、入力バッファ８の現在の深さをアグリゲートバッファ深さ７５に加算することにより、アグリゲートバッファ深さ値７５を更新し得る（１３４）。較正モジュール７４はその後、パルスカウンタ７３によるアグリゲート深さ値７５の商を計算することにより、入力バッファの平均深さを算出し得る（１３６）。
【００６８】
較正モジュール７４が平均バッファ深さを算出した後、較正モジュール７４は、平均バッファ深さが安定的かを判断し得る（１３８）。較正モジュール７４は、平均バッファ深さがある期間内においてあるパーセンテージより大きく変化したかを判断することによって、平均バッファ深さが安定的であるかを判断し得る。もし較正モジュール７４が、平均バッファ深さは安定的であると判断すれば（１３８で“ＹＥＳ”）、較正モジュール７４は、平均バッファ深さにセットポイントを確立し得る（１４０）。次に較正モジュール７４は、較正フェーズの完了を示すフラグをセットし得る（１４２）。
【００６９】
較正モジュール７４が、較正フェーズの完了を示すフラグをセットした後、または較正モジュール７４が、平均バッファ深さが安定的でない（１３８で“ＮＯ”）と判断した後、較正モジュール７４は、入力バッファから、１つの出力期間に相当する量のＭＤＵを取り出し得る（１４４）。較正モジュール７４はその後、取り出されたＭＤＵをデータ変換モジュール２８に出力し得る（１４６）。
【００７０】
図６は、ポスト較正モジュール７６の典型的なポスト較正動作を例示するフローチャートである。フェーズ特定モジュール７０がポスト較正モジュール７６に対してポスト較正動作の実行を命令すると、ポスト較正モジュール７６内のドリフト算出モジュール８０は、入力バッファ８の平均深さを算出し得る（１６０）。次にドリフト算出モジュール８０は、ドリフト係数を算出し得る（１６２）。ドリフト算出モジュール８０は、例えば、入力バッファ８の平均深さをセットポイントから減算することにより、ドリフト係数を算出し得る。
【００７１】
ドリフト算出モジュール８０がドリフト係数を算出した後、ポスト較正モジュール７６のインターバル特定モジュール８２内のドリフト閾値モジュール８４は、ドリフト係数の絶対値が最小ドリフト閾値以上であるかを判断することにより、訂正強度を特定する処理を開始し得る（１６４）。もしドリフト閾値モジュール８４が、ドリフト係数が最小ドリフト閾値以上でない（すなわち、未満）と判断すれば（１６４で“ＮＯ”）、ドリフト閾値モジュール８４は、訂正強度をゼロにセットし得る（１６６）。
【００７２】
もしドリフト閾値モジュール８４が、ドリフト係数が最小ドリフト閾値以上であると判断すれば（１６４で“ＹＥＳ”）、インターバル特定モジュール８２内の機会検出モジュール８６が、１つの出力期間に等しい時間を占める、入力バッファ８におけるＭＤＵの最も古いセットが、訂正機会に関連付けられているかを判断する（１６８）。上記で議論したように、機会検出モジュール８６は、ＭＤＵの最も古いセットがプログラムクロックリファレンスに対する参照に関連付けられていない場合、ＭＤＵの最も古いセットにおけるＭＤＵが不連続のプログラムクロックリファレンスに関連付けられている場合、ＭＤＵの最も古いセットにおけるＭＤＵが異なるプログラムマップテーブルに関連付けられている場合、１つまたはそれ以上の連続したＭＤＵが音声の無音及び／または黒い映像または映像が無いものに相当する場合、またはＭＤＵの最も古いセット内の１つまたはそれ以上のＭＤＵがプログラムマップテーブルの修正メッセージに関連付けられている場合、に、入力バッファにおけるＭＤＵの最も古いこのセットが、訂正機会を構成すると判断し得る。もし機会検出モジュール８６が、入力バッファ８内のＭＤＵのこの最も古いセットが訂正機会を構成していると判断すれば（１６８で“ＹＥＳ”）、機会検出モジュール８６は、ドリフト係数の最大量に等しい訂正強度をセットし得る（１７０）。
【００７３】
他方、もし機会検出モジュール８６が、入力バッファ８内のＭＤＵのこの最も古いセットが訂正機会を構成しないと判断すれば（１６８で“ＮＯ”）、インターバル特定モジュール８２内の部分訂正モジュール８８は、ドリフト係数の絶対値が最大許容ドリフト閾値以上であるかを判断し得る（１７２）。もし部分訂正モジュール８８が、ドリフト係数は最大許容ドリフト閾値以上であると判断すれば（１７２で“ＹＥＳ”）、部分訂正モジュール８８は、最大ドリフト訂正値に等しい訂正強度をセットし得る（１７４）。この最大ドリフト訂正値は、最大のドリフト係数より小さい値である。もし部分訂正モジュール８８が、ドリフト係数は最大許容ドリフト閾値以上でないと判断すれば（１７２で“ＮＯ”）、部分訂正モジュール８８は訂正強度をゼロにセットし得る（１７６）。
【００７４】
インターバル特定モジュール８２内のモジュールが訂正強度を特定した後、ＭＤＵ取り出しモジュール９６は、入力バッファ８から、１つの出力期間から訂正強度を引いた期間に等しい時間を占める最も古いＭＤＵのセットを取り出し得る（１７８）。ドリフト訂正モジュール９０はその後、ＭＤＵの修正されたセットが１つの出力期間に等しい時間を占めるように、ＭＤＵのセットを修正し得る（１８０）。ドリフト訂正モジュール９０がＭＤＵのセットを修正した後、ドリフト訂正モジュール９０は、修正されたＭＤＵをデータ変換モジュール２８に供給し得る（１８２）。
【００７５】
本明細書で述べられた技術は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって実装され得る。モジュールまたは要素として述べられたいくつかの特徴は、集積論理デバイスにより一緒に実装され、またはディスクリートであるが相互に動作可能なロジックデバイスとして個々に実装され得る。もしソフトウェアで実装される場合、本技術は、実行された際に、上記説明した方法の１つまたはそれ以上を行う命令を含む、コンピュータ読み取り可能な媒体によって少なくとも部分的に実現され得る。コンピュータ読み取り可能な媒体は、パッケージング素材を含み得る、コンピュータプログラム製品の一部を形成し得る。コンピュータ読み取り可能な媒体は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）のようなランダムアクセスメモリ、読み出し専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的に消去可能な書き込み可能読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気的または光学的データ記憶媒体、及び同種のものを備え得る。本技術は更に、または代わりに、命令またはデータ構造の形態のコードを搬送または通信する、またはコンピュータによってアクセスされ、読み出され、及び／または実行され得る、コンピュータ読み取り可能な媒体によって、少なくとも部分的に実現され得る。
【００７６】
コードは、１つまたはそれ以上のデジタルシグナルプロセッサ（ＤＳＰ）、汎用用途マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、または他の同等の集積またはディスクリート論理回路のような、１つまたはそれ以上のプロセッサによって実行され得る。従って、本明細書で使用される用語“プロセッサ”は、上述の構造のいずれか、または本明細書で述べられた技術の実装に適したその他のあらゆる構造を指し得る。更にある側面では、本明細書で述べられた機能性は、エンコード及びデコードのために構成された特定用途のソフトウェアモジュールまたはハードウェアモジュール内に設けられ、または復号映像エンコーダ−デコーダ（ＣＯＤＥＣ）に組み込まれ得る。
【００７７】
種々の実装例が述べられてきた。これら及び他の実装は、以下の特許請求の範囲の範囲内のものである。
【図１】
2010521089.tif 000003
【図２】
2010521089.tif 000004
【図３】
2010521089.tif 000005
【図４】
2010521089.tif 000006
【図５】
2010521089.tif 000007
【図６】
2010521089.tif 000008
【国際調査報告】
2010521089.tif 000009
2010521089.tif 000010
2010521089.tif 000011
2010521089.tif 000012