(57)【要約】【課題】メディア内のコンテンツ数が多くなると、ランダム再生時、次再生コンテンツ番号の決定に時間がかかる。決定時間にばらつきを生じる。【解決手段】１から未再生コンテンツ数Ｉ２＝ｎの範囲で再生候補位置Ｉ１としてランダム値ｉを設定し、位置Ｉ１におけるコンテンツ番号Ｃｉを読み出し、再生する。位置Ｉ１＝ｉにおけるコンテンツ番号Ｃｉと、未再生コンテンツ数ｎに対応する位置Ｉ２＝ｎにおけるコンテンツ番号Ｃｎとを入れ替え、未再生コンテンツ数Ｉ２をデクリメントする。以上を繰り返す。次再生コンテンツ番号決定を、検索処理ではなく、メモリ配列１ｃのデータ入れ替えにより実現する。次再生コンテンツ番号を一定かつ短い時間で決定することができる。【選択図】  図１
2004326921.tif 000002
【特許請求の範囲】
【請求項１】
メディアプレーヤにおいて再生されるべきコンテンツをランダムに再生するランダム再生方法であって、
全コンテンツ番号を重複なしにメモリ配列に格納する工程と、
再生候補位置として１から未再生コンテンツ数までの間のランダムな値を取得する工程と、
前記メモリ配列における前記再生候補位置から再生するコンテンツ番号を読み出す工程と、
前記メモリ配列内で前記再生候補位置のコンテンツ番号と前記未再生コンテンツ数に対応するメモリ配列位置のコンテンツ番号とを互いに入れ替えて格納する工程と、
前記未再生コンテンツ数をデクリメントした上で前記未再生コンテンツ数がゼロになるまで前記再生候補位置としてランダムな値を取得する工程に戻る工程とを含むことを特徴とするランダム再生方法。
【請求項２】
前記再生候補のコンテンツ番号として１から未再生コンテンツ数までの間でランダムに取得した値が前記未再生コンテンツ数と一致するときは、前記２つのコンテンツ番号の入れ替えの工程をスキップすることを特徴とする請求項１に記載のランダム再生方法。
【請求項３】
前記デクリメントにより前記未再生コンテンツ数が１になったときは、前記ランダム値の取得の工程に戻らずかつ前記コンテンツ番号の入れ替えの工程をスキップする状態で、メモリ配列の配列位置の１のコンテンツ番号の読み出しを行うことを特徴とする請求項１または請求項２に記載のランダム再生方法。
【請求項４】
前記２つのコンテンツ番号の入れ替えの工程に代えて、前記メモリ配列内で前記未再生コンテンツ数に対応するメモリ配列位置のコンテンツ番号を前記再生候補位置に上書きすることを特徴とする請求項１から請求項３までのいずれかに記載のランダム再生方法。
【請求項５】
メディアプレーヤにおいて再生されるべきコンテンツをランダムに再生するランダム再生方法であって、
全コンテンツ番号を重複なしにメモリ配列に格納する工程と、
前記再生候補位置として選択済みコンテンツ数から全コンテンツ数までの間のランダムな値を取得する工程と、
前記メモリ配列における前記再生候補位置から再生するコンテンツ番号を読み出す工程と、
前記メモリ配列内で前記再生候補位置のコンテンツ番号と前記選択済みコンテンツ数に対応するメモリ配列位置のコンテンツ番号とを互いに入れ替えて格納する工程と、
前記選択済みコンテンツ数をデクリメントした上で前記選択済みコンテンツ数が全コンテンツ数になるまで前記再生候補位置としてランダムな値を取得する工程に戻る工程とを含むことを特徴とするランダム再生方法。
【請求項６】
前記再生候補のコンテンツ番号として選択済みコンテンツ数から全コンテンツ数までの間でランダムに取得した値が前記選択済みコンテンツ数より１大きい数と一致するときは、前記２つのコンテンツ番号の入れ替えの工程をスキップすることを特徴とする請求項５に記載のランダム再生方法。
【請求項７】
前記インクリメントにより前記選択済みコンテンツ数が全コンテンツ数より１小さい値になったときは、前記ランダム値の取得の工程に戻らずかつ前記コンテンツ番号の入れ替えの工程をスキップする状態で、メモリ配列の配列位置の最終のコンテンツ番号の読み出しを行うことを特徴とする請求項５または請求項６に記載のランダム再生方法。
【請求項８】
前記２つのコンテンツ番号の入れ替えの工程に代えて、前記メモリ配列内で前記選択済みコンテンツ数に対応するメモリ配列位置のコンテンツ番号を前記再生候補位置に上書きすることを特徴とする請求項１から請求項７までのいずれかに記載のランダム再生方法。
【請求項９】
２回目以降のランダム再生においては、前記全コンテンツ番号を重複なしにメモリ配列に格納する工程をスキップすることを特徴とする請求項１から請求項８までのいずれかに記載のランダム再生方法。
【請求項１０】
ランダム再生の終了時におけるメモリ配列におけるコンテンツ番号の配列を保持し、次回のランダム再生の開始では前記保持したコンテンツ番号の配列において前記ランダムな値を取得する工程に進むことを特徴とする請求項１から請求項９までのいずれかに記載のランダム再生方法。
【請求項１１】
１回のランダム再生の終了後にリピート設定の有無を判定し、リピート設定があるときは、前記選択済みコンテンツ数に１を設定した上で、前記再生候補位置としてランダムな値を取得する工程に戻ることを特徴とする請求項１から請求項１０までのいずれかに記載のランダム再生方法。
【請求項１２】
前記メディアプレーヤとしてＣＤプレーヤに適用することを特徴とする請求項１から請求項１１までのいずれかに記載のランダム再生方法。
【請求項１３】
請求項１から請求項１２までのいずれかに記載のランダム再生方法が再生の制御プログラムに組み込まれて搭載されていることを特徴とするメディアプレーヤ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メディア情報を再生するメディアプレーヤおよびメディアプレーヤにおけるランダム再生方法に関するものである。適用し得るメディアプレーヤとしてはＣＤプレーヤのほか、ＭＤプレーヤ、ＤＶＤプレーヤなどがある。
【０００２】
【従来の技術】
ＣＤプレーヤを代表とするメディアプレーヤには、コンテンツ（ＣＤの場合はトラック）をランダムな順序に再生するランダム再生機能がある。従来のランダム再生においては、再生するコンテンツを乱数により決定して再生するが、再生済みを区別するフラグを用いて、一度再生したコンテンツは全コンテンツの再生が終了するまで再度再生しないようにしていた。
【０００３】
従来の再生済みフラグを用いるランダム再生動作を図１０を用いて説明する。まず、全再生済みフラグをゼロでクリアする（ステップＳ２１）。次に、“１”から“コンテンツ数”までの自然数の範囲で乱数により再生候補コンテンツ番号を決定する（ステップＳ２２）。決定した再生候補コンテンツ番号に対応する再生済みフラグを検索する（ステップＳ２３）。再生済みフラグを参照し、未再生であれば、再生候補コンテンツ番号を次再生コンテンツ番号とする。再生済みの場合はステップＳ２３に戻り、再度、再生候補コンテンツ番号を決定する（ステップＳ２４）。このようにして、再生されるコンテンツを決定すると、再生が決定されたコンテンツのフラグを“済み”にセットし（ステップＳ２５）、コンテンツの再生を行う（ステップＳ２６）。全コンテンツの再生がすべて終了するまでメディアの再生を繰り返し、全曲の再生が終了していればランダム再生を終了する（ステップＳ２７）。
【０００４】
上記再生済みフラグを用いるランダム再生動作では、再生済みフラグをコンテンツごとに用意する必要があり、再生済みフラグを全コンテンツ数分格納できるメモリ容量の大きいＲＡＭが必要となる。再生済みフラグは１ビットであり、例えば１０枚ＣＤチェンジャーではＣＤの最大曲数が９９曲であるので、９９０ビットのメモリが必要となる。しかし、信号処理を行う半導体集積回路においてＲＡＭが占める面積は比較的大きいことから、少しでもＲＡＭ容量を小さくしたい。
【０００５】
上記の課題を解決するための最も単純な方法は、外部メモリを準備し、再生済みフラグを格納することであるが、一般に外部メモリは製品のコストアップにつながるため、ランダム再生のためだけに外部メモリを用いることは非現実的である。
【０００６】
別の解決方法として、全コンテンツ数分の再生済みフラグを持つのではなく、ランダムデータを記録したテーブルをＲＯＭに用意することにより、ＲＡＭ容量を削減する方法がある（例えば、特許文献１参照）。
【０００７】
また、全コンテンツを１回ずつ再生することは不可能になるものの、所定数の次再生コンテンツ番号を記憶して所定数回の繰り返しの間は同じコンテンツを再生しないようにする方法がある（例えば、特許文献２参照）。
【０００８】
【特許文献１】
特開平１０−５００４１号公報（第２−４頁、第２−３図）
【特許文献２】
特開平１０−２８３７５８号公報（第４−５頁、第４図）
【０００９】
【発明が解決しようとする課題】
従来の技術では、いずれもＣＤ‐ＤＡ（音楽用コンパクトディスク）が前提とされているが、最近ではＭＰ３（ＭＰＥＧ  ＡＵＤＩＯ  ＬＡＹＥＲ３）を代表とする圧縮オーディオコンテンツを再生可能な再生装置が開発されている。ＣＤ‐Ｒ（追記型コンパクトディスク）に記録した圧縮オーディオコンテンツを再生可能なＣＤプレーヤの場合、全コンテンツ数は９９ではなく、記録可能なファイル数となり、数百〜数千の数になり得る。このようなメディアのランダム再生を実現する場合、特許文献１のＲＯＭテーブルを利用する方法では、ＲＡＭは削減されるものの、ＲＯＭテーブルが極端に増大してしまうという弊害が起こる。また、特許文献２の方法では、全コンテンツを１回ずつ再生することは不可能である。
【００１０】
さて、前述の圧縮オーディオコンテンツを再生可能なＣＤプレーヤでは、再生用トラックバッファのための大容量メモリが備えられており、そのメモリの一部はワーク領域として使用可能な場合が多い。このワーク領域を利用して、再生済みフラグを記憶させるという方法も考えられる。しかし、一度に全再生済みフラグを読み出すことは内蔵メモリ容量の関係から困難な場合が多く、この場合、再生済みフラグを分割して読み出すことが必要となり、次再生コンテンツを決定する処理が複雑化する。また、全コンテンツ数が多くなると、未再生コンテンツ検索処理に時間がかかる、次再生コンテンツ決定までの時間にばらつきが生じる、外部メモリのデータ転送速度が低速な場合、大量のデータ読み出しには時間がかかってしまう等、ランダム再生を実現するためのソフトウェアの設計が困難になってくる。
【００１１】
本発明は、このような事情に鑑みて創作したものであり、全コンテンツ数が多くなっても、使用する内蔵メモリ量をほとんど増やさずに、かつ、次再生コンテンツの決定が短時間で行えるランダム再生方法を提供することを目的としている。
【００１２】
【課題を解決するための手段】
上記の課題を解決するために、本発明は次のような手段を講じる。
【００１３】
まず、初期化として、全てのコンテンツ番号を重複なくメモリ配列に格納する。通常は、昇順または降順で格納するが、必ずしもそれのみに限定する必要性はなく、順序不同であってもよい。網羅していることが要件となる。
【００１４】
上記の初期化に次いで、メモリ配列上の再生候補位置としてランダムな値を取得する。これには条件があって、“１”を開始点として、“未再生コンテンツ数”に相当する数値までの間にある自然数の中でのランダム値とする。未再生コンテンツ数は、一番最初は、全コンテンツ番号の個数と一致する。後述するように、候補のコンテンツが再生されると、未再生コンテンツ数は１つ減少する。コンテンツ再生ごとに１つずつ減少する。
【００１５】
前記のランダム値で設定された再生候補位置に基づいて、前記メモリ配列における該当位置からコンテンツ番号を読み出す。このコンテンツ番号のコンテンツが再生されることになる。
【００１６】
再生候補のコンテンツ番号を読み出した上で、メモリ配列内において、前記再生候補位置のコンテンツ番号と前記未再生コンテンツ数に対応するメモリ配列位置のコンテンツ番号とを互いに入れ替える。一番最初は、未再生コンテンツ数は全コンテンツ番号の個数と一致しているので、再生候補位置にあった再生候補のコンテンツ番号はメモリ配列の最終位置に転送格納され、逆に、その最終位置にあった非候補のコンテンツ番号は再生候補位置に転送格納される。これは、繰り返しのサイクルにおいて、一度再生候補として選択されたコンテンツ番号は再度選択されないようにするためである。次のサイクルでは再度選択されないように、選択されない位置に移動させているのである。逆に、非候補のコンテンツ番号は、次のサイクルで選択の候補となり得るように、選択され得る位置に移動させているのである。
【００１７】
コンテンツ番号どうしの入れ替えを行うと、未再生コンテンツ数を１だけ減少するデクリメントを行う。このデクリメントのタイミングは、再生候補のコンテンツ番号の読み出しの後であればいつでもよい。該当のコンテンツの再生開始の前でも、再生中でも、再生終了直後でもよい。コンテンツ番号どうしの入れ替えの前でもよいし、後でもよい。未再生コンテンツ数を１だけ減らすことにより、上記で一度再生候補として選択されメモリ配列の最終位置に移されたコンテンツ番号を、次のサイクルにおいて、選択候補から除外する準備とする。
【００１８】
そして、前記未再生コンテンツ数がゼロになったか否かを判断し、非ゼロであれば、上記の再生候補位置としてランダムな値を取得する工程に戻る。
【００１９】
一度再生の候補となったコンテンツ番号は、以降のサイクルでは選択されないメモリ配列の位置に移し替えられていて、以降のサイクルで選択され得るのは、非候補のコンテンツ番号に限られることになる。このような状況で次々と非候補のコンテンツ番号を再生候補のコンテンツ番号として選択し、未再生コンテンツ数がゼロになるまで繰り返す。メモリ配列は初期化された状態とは異なるようになるが、次回のランダム再生の開始時に初期化すればよい。あるいは、初期化せず、前回のランダム再生終了時の状態から開始してもよい。
【００２０】
理解を助けるため、図１を用いて説明する。図１（ａ）に示すように、コンテンツ数がｎあり、これに対応してメモリ配列は、１，２…ｎのｎ個の配列位置を有し、未再生コンテンツとしてｎ個のコンテンツ番号Ｃ１，Ｃ２…Ｃｎが格納されている。
【００２１】
未再生コンテンツ数がｎであるので、選択可能候補領域Ｅの１〜ｎの範囲でランダム値を得る。そのランダム値をｉとする。再生候補位置Ｉ１としてｉを設定する（Ｉ１＝ｉ）。未再生コンテンツ数Ｉ２はｎである（Ｉ２＝ｎ）。
【００２２】
再生候補位置Ｉ１におけるコンテンツ番号Ｃｉが読み出される。この読み出したコンテンツ番号Ｃｉのコンテンツが再生されることになる。再生対象のコンテンツを特定するためにコンテンツ番号Ｃｉを読み出している。
【００２３】
図１（ｂ）に示すように、再生候補位置Ｉ１＝ｉにおけるコンテンツ番号Ｃｉを、未再生コンテンツ数ｎに対応するメモリ配列位置Ｉ２＝ｎに移し替えるとともに、メモリ配列位置Ｉ２＝ｎにおけるコンテンツ番号Ｃｎを再生候補位置Ｉ１＝ｉに移し替える。
【００２４】
未再生コンテンツ数Ｉ２をデクリメントする。これまではｎであったところ、ｎ−１となる（Ｉ２＝ｎ−１）。
【００２５】
以上の結果、図１（ｃ）に示すように、選択可能候補領域Ｅは１つ減って、１〜（ｎ−１）となっている。ここには、（ｎ−１）個の非候補のコンテンツ番号が全て含まれている。一度候補として選択された再生候補のコンテンツ番号Ｃｉは選択可能候補領域Ｅの外に移されており、次のサイクルでは選択されることはない。
【００２６】
次のサイクルでは、選択可能候補領域Ｅである１〜（ｎ−１）の範囲でランダム値を得る。そのランダム値をｋとする。再生候補位置Ｉ１としてｋを設定する（Ｉ１＝ｋ）。未再生コンテンツ数Ｉ２は（ｎ−１）である（Ｉ２＝（ｎ−１））。
【００２７】
再生候補位置Ｉ１におけるコンテンツ番号Ｃｋが読み出される。この読み出したコンテンツ番号Ｃｋのコンテンツが再生されることになる。
【００２８】
図１（ｄ）に示すように、再生候補位置Ｉ１＝ｋにおけるコンテンツ番号Ｃｋを、未再生コンテンツ数（ｎ−１）に対応するメモリ配列位置Ｉ２＝（ｎ−１）に移し替えるとともに、メモリ配列位置Ｉ２＝（ｎ−１）におけるコンテンツ番号Ｃｎ−１を再生候補位置Ｉ１＝ｋに移し替える。
【００２９】
未再生コンテンツ数Ｉ２をデクリメントする。これまでは（ｎ−１）であったところ、（ｎ−２）となる（Ｉ２＝ｎ−２）。
【００３０】
以上の結果、図１（ｅ）に示すように、選択可能候補領域Ｅは１つ減って、１〜（ｎ−２）となっている。ここには、（ｎ−２）個の未再生コンテンツ番号が全て含まれている。一度候補として選択された再生候補のコンテンツ番号Ｃｉ，Ｃｋは選択可能候補領域Ｅの外に移されており、次のサイクルでは選択されることはない。
【００３１】
以上を要するに、本発明のランダム再生方法は、メディアプレーヤにおいて再生されるべきコンテンツをランダムに再生するランダム再生方法であって、全コンテンツ番号を重複なしにメモリ配列に格納する工程と、再生候補位置として“１”から“未再生コンテンツ数”までの間のランダムな値を取得する工程と、前記メモリ配列における前記再生候補位置から再生するコンテンツ番号を読み出す工程と、前記メモリ配列内で前記再生候補位置のコンテンツ番号と前記未再生コンテンツ数に対応するメモリ配列位置のコンテンツ番号とを互いに入れ替えて格納する工程と、前記未再生コンテンツ数をデクリメントした上で前記未再生コンテンツ数がゼロになるまで前記再生候補位置としてランダムな値を取得する工程に戻る工程とを含むものである。
【００３２】
この構成によれば、１回のランダム再生で各コンテンツ番号を１回に限定し、しかも全てのコンテンツ番号を選択するランダム性を発揮できる。２つのコンテンツ番号を入れ替えることと未再生コンテンツ数をデクリメントするだけである。従来技術の場合の、候補設定と、今回候補と前回候補との比較、比較結果が不一致なら進むが一致なら再設定をし繰り返すといった検索処理は行う必要はない。メモリ配列との間のデータ転送量が毎回一定であるために、毎回一定の処理時間で再生候補のコンテンツ番号を決定できる。また、メモリ配列との間のデータ転送については、２箇所のコンテンツ番号を入れ替えるだけであり、再生済みフラグを使用する場合と比較すると、データ転送量は少なくなる。このため、再生トラックバッファ用メモリのワーク領域を用いても処理が複雑化せず、容易にランダム再生が実現できる。また、メモリ配列を外部メモリに確保した場合、全コンテンツ数が多くなっても、使用する内蔵メモリ量をほとんど増やさずに対応することが可能となる。
【００３３】
上記の発明において好ましい態様として、次のものを挙げることができる。すなわち、前記再生候補のコンテンツ番号として“１”から“未再生コンテンツ数”までの間でランダムな値を取得するが、この取得した再生候補のコンテンツ番号の値が前記未再生コンテンツ数と一致するときがある。このような場合には、前記２つのコンテンツ番号の入れ替えの工程をスキップすることが好ましい。このような場合に、入れ替えを行っても構わないのであるが、入れ替えの結果が元と同じになるので、スキップしてもよく、スキップすることにより、処理時間の短縮化を図ることができる。
【００３４】
また、上記の発明において好ましい態様は、前記デクリメントにより前記未再生コンテンツ数が１になったときは、前記ランダム値の取得の工程に戻らずかつ前記コンテンツ番号の入れ替えの工程をスキップする状態で、メモリ配列の配列位置の１のコンテンツ番号の読み出しを行うことである。未再生コンテンツ数が１になったときにも、コンテンツ番号の入れ替えを行っても構わないのであるが、入れ替えの結果が元と同じになるので、スキップしてもよく、スキップすることにより、処理時間の短縮化を図ることができる。
【００３５】
別の解決手段として、本発明は、次のような手段を講じる。このランダム再生方法は、前記２つのコンテンツ番号の入れ替えの工程に代えて、前記メモリ配列内で前記未再生コンテンツ数に対応するメモリ配列位置のコンテンツ番号を前記再生候補位置に上書きするものである。これは、一度選択された再生候補のコンテンツ番号は、読み出しが行われてしまえば、次のサイクルには最早不要になるとの観点から発想したものである。必要なのは、非候補のコンテンツ番号が必ず選択され得る位置にあることである。そこで、未再生コンテンツ数に対応するメモリ配列位置のコンテンツ番号を再生候補位置に上書きするのである。再生候補位置のコンテンツ番号の移し替えは行わないのである。これにより、処理時間の短縮化を図ることができる。
【００３６】
次のように構成することも有効である。上記では、メモリ配列の最終位置に選択済みのコンテンツ番号を退避させ、選択可能候補領域を“１”からデクリメント後の“未再生コンテンツ数”までの値としたが、これに代えて、選択済みのコンテンツ番号の退避位置をメモリ配列の先頭位置としてもよい。
【００３７】
すなわち、全コンテンツ番号を重複なしにメモリ配列に格納する工程と、前記再生候補位置として選択済みコンテンツ数から全コンテンツ数までの間のランダムな値を取得する工程と、前記メモリ配列における前記再生候補位置から再生するコンテンツ番号を読み出す工程と、前記メモリ配列内で前記再生候補位置のコンテンツ番号と前記選択済みコンテンツ数に対応するメモリ配列位置のコンテンツ番号とを互いに入れ替えて格納する工程と、前記選択済みコンテンツ数をデクリメントした上で前記選択済みコンテンツ数が全コンテンツ数になるまで前記再生候補位置としてランダムな値を取得する工程に戻る工程とを含むものである。
【００３８】
この場合、選択済みコンテンツ数をインクリメントするようにし、“選択済みコンテンツ数”から“全コンテンツ数”までを選択可能候補領域とするのである。これによっても上記同様の作用が発揮される。
【００３９】
ここで好ましい態様として、次のものを挙げることができる。すなわち、前記再生候補のコンテンツ番号として“選択済みコンテンツ数”から“全コンテンツ数”までの間でランダムに取得した値が前記選択済みコンテンツ数より１大きい数と一致するときは、前記２つのコンテンツ番号の入れ替えの工程をスキップすることである。スキップすることにより、処理時間の短縮化を図ることができる。
【００４０】
また、上記において別の好ましい態様は、前記インクリメントにより前記選択済みコンテンツ数が全コンテンツ数より１小さい値になったときは、前記ランダム値の取得の工程に戻らずかつ前記コンテンツ番号の入れ替えの工程をスキップする状態で、メモリ配列の配列位置の最終のコンテンツ番号の読み出しを行うことである。スキップすることにより、処理時間の短縮化を図ることができる。
【００４１】
また、上記の発明において好ましい態様は、前記２つのコンテンツ番号の入れ替えの工程に代えて、前記メモリ配列内で前記選択済みコンテンツ数に対応するメモリ配列位置のコンテンツ番号を前記再生候補位置に上書きすることである。上書きするだけで、再生候補位置のコンテンツ番号の移し替えは行わないので、処理時間の短縮化を図ることができる。
【００４２】
また、上記の発明において、２回目以降のランダム再生においては、前記全コンテンツ番号を重複なしにメモリ配列に格納する工程をスキップしてもよい。
【００４３】
別の表現形態をとると、ランダム再生の終了時におけるメモリ配列におけるコンテンツ番号の配列を保持し、次回のランダム再生の開始では前記保持したコンテンツ番号の配列において前記ランダムな値を取得する工程に進むようにしてもよい。
【００４４】
これは、初期化によるコンテンツ番号の整列化を行わないものである。必要なことは、全てのコンテンツ番号を重複なくメモリ配列に格納することである。重複なく網羅していることが重要で、初期状態の順序については特に規則性を伴う必要はないのである。
【００４５】
リピート再生機能を有する場合には、次のように構成することが好ましい。すなわち、１回のランダム再生の終了後にリピート設定の有無を判定し、リピート設定があるときは、前記未再生コンテンツ数にコンテンツ番号の全数を設定した上で、前記再生候補位置としてランダムな値を取得する工程に戻る。これは、全コンテンツ数の１回のランダム再生を繰り返す場合に、未再生コンテンツ数を初期化してからランダム再生を再開するものである。何度繰り返しても、上記同様の効果が発揮される。
【００４６】
上記した本発明の各ランダム再生方法は、そのメディアプレーヤとしてＣＤプレーヤに適用することが可能である。また、ＭＤプレーヤやＤＶＤプレーヤに適用してもよい。その場合、上記各ランダム再生方法を再生の制御プログラムに組み込んで搭載することになる。
【００４７】
【発明の実施の形態】
以下、本発明にかかわるランダム再生方法の実施の形態をＣＤプレーヤに適用した場合を例に図面に基づいて詳細に説明する。
【００４８】
図２は本発明の実施の形態におけるランダム再生方法が再生の制御プログラムに含まれて搭載されたＣＤプレーヤの概略の構成を示すブロック図である。図２において、１はＣＤ再生装置、２はコントローラ、３は操作部、４は音声出力装置、５はスピーカである。
【００４９】
コントローラ２は、ＲＯＭ／ＲＡＭを内蔵し、ＲＯＭ／ＲＡＭに格納されたプログラムに従って動作し、操作部３からの信号に従ってＣＤ再生装置１および音声出力装置４を制御するように構成されている。なお、外部のＲＯＭ／ＲＡＭのプログラムに従ってコントローラ２を動作させるように構成してもよい。
【００５０】
ＣＤ再生装置１は、内部にＳＲＡＭ、ＤＲＡＭ等で構成された再生トラックバッファ用メモリ１ａを持ち、その一部はコントローラ２がワーク領域１ｂとして使用可能であり、ワーク領域１ｂの一部をランダム再生用のメモリ配列１ｃとして使用するように構成されている。ＣＤ再生装置１は、コントローラ２の命令によりディスクの任意のトラックを再生し、音声出力装置４に音声信号を出力する。
【００５１】
音声出力装置４は、入力された音声信号を増幅してスピーカ５を鳴らす。また、コントローラ２からミュートを指令された場合はミュートする機能も持つ。
【００５２】
図３は、コントローラ２によるランダム再生の動作を示すフローチャートである。コントローラ２は、操作部３からランダム再生指令を受けると、図３のフローチャートに従って再生トラックを決定し、再生を行う。コントローラ２は、ＣＤ再生装置１内のメモリのワーク領域１ｂにランダム再生用のメモリ配列１ｃを確保し、また内部メモリあるいはレジスタに、未再生コンテンツ数ｍｉ、再生候補位置変数ＩＮＤＥＸ１，退避位置変数ＩＮＤＥＸ２、第１のコンテンツ番号変数ＣＮＯ１，第２のコンテンツ番号変数ＣＮＯ２の各データ領域２ａ〜２ｅを確保する。
【００５３】
ステップＳ１で、まずＣＤ再生装置１内のメモリのワーク領域１ｂに確保したメモリ配列１ｃにおいて、“１”から“コンテンツ数”（ＣＤの場合はトラック数）までの番号で初期化する。本初期化処理においては、メモリ配列１ｃ内に各コンテンツ番号が漏れなくそれぞれ１回のみ出現するように初期化する。通常は、コンテンツ番号を昇順で格納し、初期化する（図４（ａ）参照）。
【００５４】
ステップＳ２では、未再生コンテンツ数ｍｉを全コンテンツ数に設定する（図４の場合は、ｍｉ←５）。
【００５５】
ステップＳ３では、“１”から未再生コンテンツ数“ｍｉ”までの範囲で乱数によりランダムに再生候補位置ｉを選択し、再生候補位置変数ＩＮＤＥＸ１に格納する（ＩＮＤＥＸ１←ｉ：図４（ｂ）の場合はＩＮＤＥＸ１←３）。
【００５６】
ステップＳ４では、メモリ配列１ｃにおいて再生候補位置変数ＩＮＤＥＸ１が示す配列位置からコンテンツ番号Ｃｉを読み出し、第１のコンテンツ番号変数ＣＮＯ１に格納する（ＣＮＯ１←Ｃｉ；図４（ｂ）の場合はＣＮＯ１←Ｃ３）。
【００５７】
ステップＳ５では、退避位置変数ＩＮＤＥＸ２に未再生コンテンツ数ｍｉを格納し（図４（ｂ）の場合はＩＮＤＥＸ２←５）、ステップＳ６でメモリ配列１ｃから退避位置変数ＩＮＤＥＸ２の内容であるコンテンツ番号を読み出し、第２のコンテンツ番号変数ＣＮＯ２に格納する（図４（ｂ）の場合はＣＮＯ２←Ｃ５）。第２のコンテンツ番号変数ＣＮＯ２はメモリ配列１ｃ内で一番後ろの位置に存在する非候補のコンテンツ番号である。
【００５８】
ステップＳ７では、退避位置変数ＩＮＤＥＸ２が指示するメモリ配列１ｃ上の位置に第１のコンテンツ番号変数ＣＮＯ１の内容を格納し、再生候補位置変数ＩＮＤＥＸ１が指示するメモリ配列１ｃ上の位置に第２のコンテンツ番号変数ＣＮＯ２の内容を格納することにより、メモリ配列１ｃ内の再生候補位置変数ＩＮＤＥＸ１と退避位置変数ＩＮＤＥＸ２のデータを入れ替える。すなわち、再生されるコンテンツ番号と一番後ろに位置存在していたコンテンツ番号とを互いに入れ替える（図４（ｃ）の場合はコンテンツ番号Ｃ３とコンテンツ番号Ｃ５とが入れ替えられている）。
【００５９】
ステップＳ８では、未再生コンテンツ数ｍｉをデクリメントして１減算し（ｍｉ←ｍｉ−１）、ステップＳ９では、ステップＳ４で決定した第１のコンテンツ番号変数ＣＮＯ１が指示するコンテンツ番号のコンテンツの再生を行う。
【００６０】
再生完了後、ステップＳ１０で未再生コンテンツ数ｍｉが“０”になったか否かを確認する。“０”になっていない場合は、ステップＳ３に戻り、再度、“１”から未再生コンテンツ数“ｍｉ”（これは前回よりも１だけ小さくなっている）までの範囲で乱数により次再生コンテンツ番号を決定する（図４（ｃ）の場合はランダム値ｉ＝１）。未再生コンテンツ数ｍｉがゼロの場合は、全コンテンツの一巡再生を終了したことになり、ステップＳ１１に進む。
【００６１】
ステップＳ１１では、リピート設定があるか否かを確認し、リピート設定がある場合は、ステップＳ２に戻り、ランダム再生を再開する。リピート設定がない場合は、ランダム再生の動作を終了する。
【００６２】
ステップＳ２に戻ってランダム再生を再開する場合、メモリ配列１ｃは昇順のコンテンツ番号で初期化された状態とは異なっているが、メモリ配列１ｃ内には各コンテンツ番号がランダムではあるが１回しか出現しないため、ステップＳ２〜ステップＳ１０の手順でコンテンツ番号を決定しても、ランダム性を維持し、かつ、各コンテンツ番号は１回のランダム再生で１回ずつしか選択されない。
【００６３】
図３を見て分かるように、ランダム再生における次再生コンテンツ番号を決定する過程で、ステップＳ３からステップＳ７の中には検索処理（候補設定→今回候補と前回候補との比較→比較結果が不一致なら進むが一致なら再設定→繰り返し）が存在せず、メモリ配列１ｃとのデータ転送量も毎回一定であるために、毎回一定の処理時間で次再生コンテンツ番号を決定することが可能である。また、メモリ配列１ｃとの間でのデータ転送については、２箇所のデータを入れ替えるだけであり、再生済みフラグを使用する場合と比較すると、データ転送量は少なくなる。このため、再生トラックバッファ用メモリ１ａのワーク領域１ｂを用いても処理が複雑化せず、ランダム再生を容易に実現できる。
【００６４】
図４は、図３のランダム再生フローチャートによる次再生コンテンツ番号決定の具体例を示している。図４は、総トラック数がコンテンツ番号Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５の５曲（開始トラック番号１、終了トラック番号５）のＣＤの例である。コンテンツ番号Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５は実際には“１”，“２”，“３”，“４”，“５”であるが、メモリ配列１ｃの位置を示す数値“１”，“２”，“３”，“４”，“５”と紛れるので、理解を容易にするため、区別して表記している。
【００６５】
図４（ａ）では、ステップＳ１に従い、メモリ配列１ｃを初期化した状態である。メモリ配列１ｃにおける位置１にコンテンツ番号Ｃ１が格納され、位置２にコンテンツ番号Ｃ２が格納され、位置３にコンテンツ番号Ｃ３が格納され、位置４にコンテンツ番号Ｃ４が格納され、位置５にコンテンツ番号Ｃ５が格納されている。各コンテンツ番号が漏れなくそれぞれ１回のみ昇順で格納されている。ステップＳ２での未再生コンテンツ数ｍｉ＝５である。
【００６６】
図４（ｂ）では、ステップＳ３で“１”から未再生コンテンツ数“５”までの範囲で乱数によりランダム値ｉとして“３”が選択され、再生候補位置変数ＩＮＤＥＸ１に“３”がセットされた状態である。
【００６７】
退避位置変数ＩＮＤＥＸ２については、ステップＳ５で常に未再生コンテンツ数ｍｉが設定されるが、ここでは、退避位置変数ＩＮＤＥＸ２に“５”がセットされている。
【００６８】
図４（ｃ）は、ステップＳ６，Ｓ７で、第２のコンテンツ番号変数ＣＮＯ２にＩＮＤＥＸ２＝“５”コンテンツ番号Ｃ５をセットし、再生候補位置変数ＩＮＤＥＸ１＝“３”におけるコンテンツ番号Ｃ３と退避位置変数ＩＮＤＥＸ２＝“５”のコンテンツ番号Ｃ５とを入れ替えた状態である。
【００６９】
図４（ｄ）は、ステップＳ８で未再生コンテンツ数ｍｉをデクリメントして１減算したときの状態である。ここでは、未再生コンテンツ数ｍｉ＝５−１＝“４”となっている。なお、退避位置変数ＩＮＤＥＸ２は実際には次回のステップＳ５で更新される。この直後に、第１のコンテンツ番号変数ＣＮＯ１のコンテンツ番号Ｃ３のコンテンツが再生される。
【００７０】
図４（ｄ）から、メモリ配列１ｃの先頭から未再生コンテンツ数ｍｉ＝“４”番目までの要素が未再生のコンテンツ番号であり、ここでは、Ｃ１，Ｃ２，Ｃ５，Ｃ４が未再生コンテンツ番号となっている。また、未再生コンテンツ数ｍｉ＝“４”より後ろの位置にあるコンテンツ番号Ｃ３が再生済みのコンテンツ番号となっている様子が分かる。再生済みのコンテンツ番号Ｃ３が、次のサイクルでは選択されなくなる最後尾に移され、元は最後尾にあったコンテンツ番号Ｃ５が、次のサイクルでは選択される可能性のある選択可能候補領域Ｅに移されている。
【００７１】
図４（ｄ）では、未再生コンテンツ数ｍｉ＝“４”であるが、２回目のステップＳ３で、ランダム値として“１”が選択され、図４（ｅ）では、配列位置“１”の次再生コンテンツ番号Ｃ１が“４”の位置に移され、元は未再生コンテンツ数ｍｉ相当の配列位置“４”にあった未選択のコンテンツ番号Ｃ４が入れ替わりで“１”の位置に移された様子を示す。コンテンツ番号Ｃ１のコンテンツが再生される。
【００７２】
図４（ｆ）では、未再生コンテンツ数ｍｉ＝“３”であるが、３回目のステップＳ３で、ランダム値として“３”が選択され、配列位置“３”の次再生コンテンツ番号Ｃ５が“３”の位置に移され、元は未再生コンテンツ数ｍｉ相当の配列位置“３”にあったコンテンツ番号Ｃ５が入れ替わりで“３”の位置に移された様子を示す。これは、結果的には、コンテンツ番号の入れ替えを行わなかったのと同じである。したがって、再生候補位置変数ＩＮＤＥＸ１と退避位置変数ＩＮＤＥＸ２が一致するときは、入れ替えをスキップしてもよい。コンテンツ番号Ｃ５のコンテンツが再生される。
【００７３】
図４（ｇ）では、未再生コンテンツ数ｍｉ＝“２”であるが、４回目のステップＳ３で、ランダム値として“１”が選択され、配列位置“１”の次再生コンテンツ番号Ｃ４が“２”の位置に移され、元は未再生コンテンツ数ｍｉ相当の配列位置“２”にあった未選択のコンテンツ番号Ｃ２が入れ替わりで“１”の位置に移された様子を示す。コンテンツ番号Ｃ４のコンテンツが再生される。
【００７４】
図示は省略するが、最後は未再生コンテンツ数ｍｉ＝“１”となり、ランダム値として“１”が選択され、入れ替えなしで次再生コンテンツ番号Ｃ２のコンテンツが再生される。
【００７５】
以上のようにして、繰り返しのステップＳ３で、ランダム値が“３”→“１”→“３”→“１”→“１”の順に選択された場合の最終のメモリ配列１ｃの状態を示している。コンテンツ番号は、再生した順番“Ｃ３”→“Ｃ１”→“Ｃ５”→“Ｃ４”→“Ｃ２”とは逆の順番で並んでいる。
【００７６】
図５は変形の形態１のフローチャートを示し、選択可能候補領域Ｅ内で取得した再生候補のコンテンツ番号の値が未再生コンテンツ数と一致する場合には、２つのコンテンツ番号の入れ替えの工程をスキップするもので、ステップＳ６ａが追加され、再生候補位置変数ＩＮＤＥＸ１と退避位置変数ＩＮＤＥＸ２の内容が一致するか否かを判断し、不一致であればステップＳ７に進んで入れ替えを行うが、一致するときはステップＳ７をスキップしてステップＳ８に進む。
【００７７】
図６は変形の形態２のフローチャートを示し、ステップＳ７に代わるステップＳ７ａとして、退避位置変数ＩＮＤＥＸ２に第１のコンテンツ番号変数ＣＮＯ１の内容を格納することはせず、再生候補位置変数ＩＮＤＥＸ１に第２のコンテンツ番号変数ＣＮＯ２の内容を格納することのみを行うようにしたものである。これは、コンテンツ番号の入れ替えではなく、再生候補位置変数ＩＮＤＥＸ１が指示するメモリ配列１ｃ上の位置において第２のコンテンツ番号変数ＣＮＯ２の内容のコンテンツ番号の上書きを行うものである。選択済みのコンテンツ番号がメモリ配列１ｃの最後尾に移動されることはなく、最後尾には元のコンテンツ番号が残ったままとなる。一度選択されたコンテンツ番号はメモリ配列１ｃから消えることになる。選択可能候補領域Ｅを順次１つずつ狭め、その狭められた中に非候補のコンテンツ番号は必ず移しておくという発想に基づいている。
【００７８】
図７は変形の形態３のフローチャートを示し、ステップＳ１０に代えてステップＳ１０ａを置くとともに、ステップＳ１０ｂを追加したものである。ステップＳ１０ａにおいて、未再生コンテンツ数ｍｉが“１”か否かを判断し、“１”のときはステップＳ３へ戻ることなく、ステップＳ１０ｂへ進み、再生候補位置変数ＩＮＤＥＸ１のコンテンツ番号のコンテンツの再生を実行するものである。すなわち、未再生コンテンツ数ｍｉが“１”になったときはコンテンツ番号の入れ替えはする必要がない。
【００７９】
図８は変形の形態４であって、図５、図７の考え方を組み合わせたものに相当するフローチャートである。
【００８０】
図９は変形の形態５であって、図５、図６、図７の考え方を組み合わせたものに相当するフローチャートである。
【００８１】
なお、リピート再生の機能を有しない機種の場合には、ステップＳ１１を省略する。
【００８２】
以上のように、本実施の形態によれば、メモリ配列１ｃをコントローラ２の外部に確保した場合は、ランダム再生を少量の内蔵メモリにより実現可能となり、かつ、各コンテンツを１回だけ再生するランダム再生を実現可能である。また、次再生コンテンツ番号を決定する際の外部メモリとのデータ転送量が少量かつ一定時間となるため、ランダム再生を実現するためのソフトウェアの設計が容易となる。
【００８３】
また、メモリ配列１ｃをコントローラ２の内蔵メモリに確保できる場合は、検索処理を必要としないため、高速に次再生コンテンツ番号を決定することが可能となる。
【００８４】
【発明の効果】
以上のように本発明によれば、メモリ配列のデータ入れ替えにより次再生コンテンツ番号を決定するので、１回のランダム再生で各コンテンツ番号を１回に限定し、しかも全てのコンテンツ番号を選択するランダム性を発揮でき、従来技術の場合の検索処理（候補設定→今回候補と前回候補との比較→比較結果が不一致なら進むが一致なら再設定→繰り返し）は行う必要はなく、高速に次再生コンテンツ番号を決定することが可能となる。メモリ配列との間のデータ転送量が毎回一定であるために、毎回一定の処理時間で再生候補のコンテンツ番号を決定できる。ランダム再生を実現するためのソフトウェアの設計が容易となる。また、メモリ配列との間のデータ転送について、２箇所のコンテンツ番号を入れ替えるだけであり、再生済みフラグを使用する場合と比較すると、データ転送量を少なくでき、外部メモリのワーク領域を用いても処理が複雑化せず、容易にランダム再生が実現できる。すなわち、全コンテンツ数が多くなっても、使用する内蔵メモリ量をほとんど増やさずに対応することが可能となる。
【図面の簡単な説明】
【図１】本発明のランダム再生方法を説明するための動作シーケンス
【図２】本発明の実施の形態におけるランダム再生方法が再生の制御プログラムに含まれて搭載されたＣＤプレーヤの概略の構成を示すブロック図
【図３】本発明の実施の形態にかかわるＣＤプレーヤのランダム再生の動作を示すフローチャート
【図４】図３のランダム再生フローチャートによる次再生コンテンツ番号決定の具体例の説明図
【図５】本発明の変形の形態１におけるランダム再生方法のフローチャート
【図６】本発明の変形の形態２におけるランダム再生方法のフローチャート
【図７】本発明の変形の形態３におけるランダム再生方法のフローチャート
【図８】本発明の変形の形態４におけるランダム再生方法のフローチャート
【図９】本発明の変形の形態５におけるランダム再生方法のフローチャート
【図１０】従来のＣＤプレーヤにおけるランダム再生の動作を示すフローチャート
【符号の説明】
１  ＣＤ再生装置
１ａ  再生トラックバッファ用メモリ
１ｂ  ワーク領域
１ｃ  メモリ配列
２  コントローラ
２ａ  未再生コンテンツ数ｍｉのデータ領域
２ｂ  再生候補位置変数ＩＮＤＥＸ１のデータ領域
２ｃ  退避位置変数ＩＮＤＥＸ２のデータ領域
２ｄ  第１のコンテンツ番号変数ＣＮＯ１のデータ領域
２ｅ  第２のコンテンツ番号変数ＣＮＯ２のデータ領域
３  操作部
４  音声出力装置
５  スピーカ
Ｃｉ  コンテンツ番号
ＣＮＯ１  第１のコンテンツ番号変数
ＣＮＯ２  第２のコンテンツ番号変数
Ｅ  選択可能候補領域
Ｉ１  再生候補位置
Ｉ２  未再生コンテンツ数
ＩＮＤＥＸ１  再生候補位置変数
ＩＮＤＥＸ２  退避位置変数
ｍｉ  未再生コンテンツ数
【図１】
2004326921.tif 000003
【図２】
2004326921.tif 000004
【図３】
2004326921.tif 000005
【図４】
2004326921.tif 000006
【図５】
2004326921.tif 000007
【図６】
2004326921.tif 000008
【図７】
2004326921.tif 000009
【図８】
2004326921.tif 000010
【図９】
2004326921.tif 000011
【図１０】
2004326921.tif 000012