JP4194258B2 - Data display device - Google Patents

Data display device Download PDF

Info

Publication number
JP4194258B2
JP4194258B2 JP2001224463A JP2001224463A JP4194258B2 JP 4194258 B2 JP4194258 B2 JP 4194258B2 JP 2001224463 A JP2001224463 A JP 2001224463A JP 2001224463 A JP2001224463 A JP 2001224463A JP 4194258 B2 JP4194258 B2 JP 4194258B2
Authority
JP
Japan
Prior art keywords
data
record
length
variable
address
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.)
Expired - Fee Related
Application number
JP2001224463A
Other languages
Japanese (ja)
Other versions
JP2003036258A5 (en
JP2003036258A (en
Inventor
誠 岡田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2001224463A priority Critical patent/JP4194258B2/en
Publication of JP2003036258A publication Critical patent/JP2003036258A/en
Publication of JP2003036258A5 publication Critical patent/JP2003036258A5/ja
Application granted granted Critical
Publication of JP4194258B2 publication Critical patent/JP4194258B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、外部から受信した可変長レコードで構成されるデータ列を処理するためのデータ処理システムおよびそれを用いるデータ表示装置の構成に関する。
【0002】
【従来の技術】
近年、テレビ放送等においても、放送される映像情報および音声情報と関連する文字データが放送局から送信され、受信機側において映像情報および音声情報と並行して、あるいは文字情報のみがディスプレイ上に表示されるという放送形態がとられる場合がある。
【0003】
たとえば、テレビ放送において、天気予報の情報をデータ放送により伝送する場合、このような天気予報に関する情報は、連続したバイナリデータであって、その内容自体は表形式であるデータとして伝送されることが多い。受信機側では、ユーザの指示に従って、このようにして放送されたバイナリデータから所望のデータの取得を行なって、ユーザが求めた地域や時刻等の天気予報情報をディスプレイ上に表示することになる。
【0004】
ところが、このような天気予報の情報等は、複数の可変長なレコードデータがバイナリデータとして順次伝送される。このようなバイナリデータから複数の可変長レコードデータの取得を行なう際には、受信機においては、先頭から1行ずつスキャンを行なって所望のレコード位置を探索する必要がある。
【0005】
【発明が解決しようとする課題】
しかしながら、上述したような従来の技術を用いた場合、所望のレコード位置が受信したバイナリデータ中の後方にあると、先頭から1行ずつスキャンすることにより、レコードデータ取得までに膨大な時間を要するという問題点があった。
【0006】
この発明は、上記のような問題点を解決するためになされたものであって、その目的は、外部から順次受信した複数の可変長レコードで構成されるバイナリデータから、ユーザの指示に従って任意のレコードデータを取得する際に、レコードデータ取得までの時間を短縮することが可能なデータ処理システムおよびこれを用いたデータ表示装置を提供することである。
【0007】
【課題を解決するための手段】
本発明のデータ表示装置は、外部からデータを受信するための受信手段と、前記受信手段受信した複数の可変長レコードで構成されるデータ列から、ユーザの指示に従って任意のレコードデータを取得するデータ取得処理手段と、取得したレコードデータ頭位置のアドレス情報を格納するドレス管理リスト取得したレコードデータを表示するための表示手段とを備え、前記ユーザが指示したレコードデータのアドレス情報が前記アドレス管理リストに格納されていないとき、前記データ列の各可変長レコードの先頭位置にあるレコード長情報に基づいて、取得対象のレコードデータのアドレス情報を取得すると共に、該レコードデータまでの連続するすべてのレコード先頭位置のアドレス情報を抽出して、前記アドレス管理リスト保持させるアドレス情報抽出手段を備える
【0021】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
【0022】
図1は、本発明に係るデータ処理システムを備えるデータ表示装置1000の構成の例を示した概念図である。
【0023】
図1においては、一例として、上述したようなデータ放送を受信することが可能な受信機101において、本発明に係るデータ処理システムが使用され、データ表示装置1000が実現されている場合の構成を示している。
【0024】
図1を参照して、受信機101は、アンテナ2を介して、映像および音声ストリームと多重されたデータ放送コンテンツを受信し、データ放送コンテンツに記述された情報に従って、ディスプレイ102およびスピーカ103を介して、映像、音声、文字、図形などを表示する。
【0025】
ユーザは、リモコン104を用いて、データ放送サービスを選択し、所望の情報を得ることができる。
【0026】
図1に示した例においては、ユーザが、各地の明日の天気に対する天気予報の情報を得るにあたり、東京地方をその天気予報の対象として選択した状態を示している。したがって、ディスプレイ102上において、「東京」が選択され、画面上で四角形の枠で囲まれている。
【0027】
図2は、図1に示した受信機101の内部構成を説明するための概略ブロック図である。
【0028】
図2を参照して、受信機101において、アンテナ2により受信されたRF信号は、受信部201において、選局されて復調処理およびデコード処理等を行なわれ、分離部202に与えられる。分離部202は、受信部201からの信号を、映像音声情報に対する信号と、データ放送コンテンツとに分離する。分離部202から、映像および音声ストリームは、AV処理部203へ送られ、データ放送コンテンツはコンテンツ用メモリ204に送られる。AV処理部203は、映像および音声ストリームを受けて、対応するカラー画像を表示可能な信号に変換する。
【0029】
一方、コンテンツ用メモリ204に蓄積されたデータ放送コンテンツに対して、CPU207が処理を行なうことにより、文字や図形等をデータ放送コンテンツによって指定されたディスプレイ102の画面上の指定位置へ表示するための信号が、オンスクリーンディスプレイ処理部(以下、「OSD処理部」と呼ぶ)205に与えられ、さらにOSD処理部205によって、映像データと文字や図形等が合成された後、ディスプレイ102上に表示される。
【0030】
ユーザからの入力信号は、リモコン104からユーザインターフェイス208を介してCPU207に伝えられる。CPU207では、データ放送コンテンツとして受信されたプログラム内に記述された入力情報に対する処理を実行して、メディアの表示制御や受信機の動作制御を行なう。
【0031】
次に、データ放送コンテンツ内にバイナリデータが含まれている場合の処理手順について説明する。
【0032】
図3および図4は、データ放送コンテンツに基づいた表示例を示す概念図である。
【0033】
まず、図3に示すように、天気予報情報の画面において、地域選択画面が表示される。図3に示した例では、たとえば、地域として札幌、東京、大阪および福岡の中から、ユーザが天気予報を見たいと思う地域を選択する構成となっているものとする。図3では、ユーザからのリモコン104を介しての指示により、東京が選択されている状態を示す。
【0034】
図4は、図3のようにしてユーザによって選択された東京地方の明日の天気の情報が表示されている状態を示す。
【0035】
図4に示されている表示のうち1行目の「の明日の天気」、2行目の「天気」、3行目の「最高気温」および「℃」、4行目の「最低気温」、「℃」および「戻る」との表示は、ユーザがどの地域を選択するかにかかわらず固定された表示が行なわれる領域である。
【0036】
一方、1行目の「東京」、2行目の「晴れのち曇り」、3行目の「22」、4行目の「16」等の表示は、ユーザがどの地域を選択するかに応じてその表示内容が変更される部分である。
【0037】
後に説明するように、このようなユーザの選択に応じてその表示内容が変更される部分については、放送局からは、表形式のデータとして、受信機101に対して送信されている。
【0038】
すなわち、データ放送コンテンツに、選択した地域の天気情報が、表形式データを表現するバイナリデータとして含まれており、図4の画面を表示する際に、このバイナリデータから天気情報データの検索が行なわれることになる。
【0039】
図5は、図3および図4で示したような天気予報提供サービスを実現するためのデータ放送コンテンツのうち、ユーザからの指示に従って、バイナリデータから天気情報データを取得するための検索処理に対応するプログラムリストを示す。
【0040】
ここで、図5に示したようなプログラムは、XML(eXtensible Markup Language)に基づいて、放送用に仕様変更を行なった言語である「BML(Broadcast Markup Language)」により記述されている。
【0041】
図5を参照して、まず、1行目の「var bt」によって、変数btの宣言が行なわれる。
【0042】
続いて、放送局から受信した表形式のデータである”tenki.bt”というバイナリデータを変数btに読込むための関数bt_new()の定義が行なわれる。
【0043】
このようにして、変数btに読込まれた天気情報に対応したバイナリデータから、ユーザによって指定される地域を表わす変数locationを引き数とする関数getTenkiData(location)により、選択された地域に応じて、天気、最高気温、最低気温の値の検索および取得が行なわれる。取得された天気、最高気温、最低気温は、関数dispData()により画面に表示される。
【0044】
ここで、まず関数bt_new()の定義式中で用いられる関数newBinaryTable(X,Y)は、第1番目の引き数Xによって指定されるバイナリデータからのデータを読出すことを示す。さらに、この関数の2番目の引き数Yの“1,S:1V,S:1V,I:1B,I:1B”は、Xで示されるバイナリデータに格納されているレコードデータのフォーマットを示している。
【0045】
すなわち、1番最初の「1」は、バイナリデータの可変長レコードの先頭の1バイト目には、各可変長レコードのレコード長が格納されていることを示す。続く「S:1V」は、その各可変長レコードの先頭には、1バイト目にそのデータ長が記述されている第1の可変長文字列データがあることを示す。さらに、この第1の可変長文字列データに続いて、「S:1V」で表される第2の可変長文字列データが存在する。この第2の可変長文字列データに続いて、各可変長レコードには、「I:1B」で表される2つのデータが存在する。ここで、「I:1B」は、1バイト長の固定長(「1B」で表される)の整数値データ(「I」で表される)がレコード内に格納されていることを示している。
【0046】
一方、5行目からは、ユーザから指定された地域locationに基づいて、天気情報のデータをバイナリデータから獲得するための関数getTenkiData()の定義が行なわれる。この定義中において、まず、「var tenki, maxTemp,minTemp」は、それぞれ、天気、最高気温、最低気温を表す変数tenki, maxTemp,minTempを宣言するものである。また、関数bt.toString(X,Y)は、バイナリデータのテーブル中から、文字列データを取得するための関数であり、1番目の引き数Xはバイナリテーブル内のレコード位置のインデックスを表わし、2番目の引き数Yはレコード内のデータ位置のインデックスを示している。
【0047】
関数toNumber(X,Y)も、バイナリデータ中から、整数値データを取得するための関数であり、引き数Xは、バイナリテーブル内のレコード位置のインデックスであり、引き数Yはレコード内のデータ位置のインデックスを示している。
【0048】
図6は、天気情報を表わす可変長レコード形式のバイナリデータtenki.btのダンプ内容を示す概念図である。
【0049】
図6中では、バイナリデータのダンプ内容に対応した文字および数値データを、ダンプデータの下に対比のために示している。
【0050】
図6において、四角で囲んだバイトは各レコードの長さを示している。すなわち、図5で説明した関数newBinaryTable()関数中の2番目の引き数において、先頭の「1」が示していたように、各レコードの1バイト目には、当該レコードのレコード長を示すデータが存在している。
【0051】
たとえば、1番最初の札幌の天気情報を示すレコードにおいては、レコード長として「0C」が指定されているために、このレコードは、このレコード長を示すデータの後に、12バイト分のデータが存在するレコードであることが示されている。すなわち、各レコードのデータは、四角で囲んだバイトの次バイトから始まり、次の四角で囲んだバイトの手前までとなる。
【0052】
続いて、この「札幌」の天気情報が格納されているデコードについて見ると、関数newBinaryTable()の2番目の引き数に示されているとおり、そのフォーマットとして次のデータは「S:1V」である。このため、まず先頭の「04」がこれに続く可変長文字列データのバイト数を示す。つまり、「04」に続く「8E」〜「79」までの4バイトのデータが、「札幌」という文字列に対応するデータである。
【0053】
さらに、関数newBinaryTable()関数の第2引き数のデータフォーマットに従うと、これに続いて、「S:1V」のデータ、すなわち先頭バイトにデータ長が示されている可変長文字列データが格納されていることになる。すなわち、「札幌」のデータに続く「04」は、これに続く文字列データが4バイトであることを示す。したがって、「90」〜「EA」が、「晴れ」との文字列に対応している。
【0054】
さらに、関数newBinaryTable()の第2引き数のデータフォーマットによれば、この「晴れ」との文字列データの後に、「I:1B」で表わされるデータが2つ続いていることになる。上述のとおり、「I:1B」は、整数値のデータ(「I」により表現される)が、固定長の1バイトのデータであることを示している。
【0055】
したがって、「晴れ」のデータに続く16進数の「12」という1バイトのデータが、10進表示で最高気温の「18」を示し、これに続く1バイトの「0A」との16進データが、10進表示では「10」という最低気温を表現していることになる。
【0056】
以上で、第1番目のレコードの「札幌」の天気情報に対するデータが終了し、引続いて、「東京」に対応するレコードが存在している。「東京」に対応するレコードは、「14」との1バイトのデータの直後から始まっており、すなわち、20バイトの長さを有していることがわかる。
【0057】
以下同様にして、「大阪」および「福岡」の天気情報が可変長レコードにより構成される一連のバイナリデータとして、放送局から送信されてくることになる。
【0058】
以上のような連続したバイナリデータで表わされる可変長レコードの天気情報が放送により伝送された後に、ユーザが、たとえば「東京」の天気情報を知りたい場合、リモコン104から、受信機101に対して「東京」の選択を指示する。これに応じて、CPU207では、コンテンツ用メモリ204中に格納されている図5に示したような検索用のプログラムに基づいて、やはりコンテンツ用メモリ204中に格納されている放送されたバイナリデータから東京の天気情報を獲得する。
【0059】
より具体的に言えば、図5に示したプログラムにおいて、関数bt.toString(1,1)の処理によって、1番目のレコード内の1番目のデータ位置からのデータの取得が行なわれる。
【0060】
このとき、従来の方法では、まず第0番目の札幌の天気の情報を含むレコードについては、その先頭の「0C」で表わされるレコードの長さ、すなわち12バイト分だけデータを先頭からスキャンすることにより、続く1番目のレコードの東京の天気情報が格納されたレコードの長さが20バイト(0x14)であることを検知して、この20バイトのレコードのデータのうち、1番目のデータから天気情報として“晴れ後曇り”の文字列を取出す。同様にして、関数bt.toNumber(1,2)、関数bt.toNumber(1,3)の処理により、東京の最高気温、最低気温をバイナリデータから取出す。
【0061】
大阪や福岡の天気情報を取出す場合も、一連のバイナリデータから、札幌、東京のレコードデータを先頭からスキャンしていくことにより、大阪のデータさらには福岡のデータの抽出を行なう。
【0062】
このように、従来の方法では、所望のレコードがバイナリデータの後方に存在する場合でも、先頭から順次レコードをスキャンする必要があり、大きなサイズのバイナリデータからレコードデータを取出すとき処理に時間を要してしまうことになる。
【0063】
そこで、本発明に係る受信機101においては、図2に示すようにアドレス管理用メモリ206を設け、たとえば、図5の関数bt_new()がCPU207から呼出された際などに、バイナリデータの各レコードの先頭位置のアドレスをアドレス管理用メモリ206に対してリストとして保持しておく処理をさらに追加する。
【0064】
このようなリストを参照して、各天気情報を抽出することとすれば、ユーザがリモコン104を用いて地域選択を行なう2回目以降の処理においては、検索時間を短縮することが可能となる。
【0065】
図7は、アドレス管理用メモリ206に格納される、アドレス管理用リストの例を示す図である。図7に示すとおり、0番目のレコードであるrecord[0]の先頭アドレスがアドレス“00000001”であることが格納されている。他のレコードについても同様である。
【0066】
つまり、図7に示すとおり、アドレス管理用メモリ206は、各レコードのインデクスの0〜3の値と対応づけて、各レコードデータの先頭位置である、図6において四角で囲んだバイトの次のバイトのアドレスを保持している。このアドレス管理用メモリ206に格納されるアドレス管理用リストは、固定長レコードのリストデータである。
【0067】
[アドレス管理用リストの作成タイミング]
このようなアドレス管理用リストをいつの時点で、また、どのレコードのアドレスまでアドレス管理用メモリ206に作成して格納しておくかについては、以下に説明するようないくつかの方式が考えられる。
【0068】
[作成タイミング1]
図8は、このようなアドレス管理用メモリ206に、レコードの先頭位置のアドレスを格納する第1番目の処理を示すフローチャートである。
【0069】
なお、以下に説明するような関数newBinaryTable()によるバイナリデータの読出しの処理とアドレス管理リストの作成処理は、このバイナリデータの受信完了時に行なっておき、予め受信されたすべてのレコードデータの先頭位置のアドレス情報をアドレス管理リストとして作成しておくことが可能である。
【0070】
すなわち、図8を参照して、CPU207が、図5に示したプログラムを実行するに当たり、関数newBinaryTable()が呼出される(ステップS100)。
【0071】
バイナリデータが格納されたファイルを、コンテンツ用メモリ204から読出処理が行なわれる(ステップS102)。
【0072】
このとき、ファイル読込に失敗した場合は(ステップS104)、エラー終了のため、メインルーチンにはエラーが生じたことを示す“false”を返す処理を行なう(ステップS106)。
【0073】
一方、ステップS104において、ファイル読込が正常に行なわれた場合、続いて、読込まれたファイルに対するスキャン動作が終了したか否かの判定が行なわれる(ステップS110)。
【0074】
スキャン動作が終了していない場合、続いて、変数tempにスキャン対象となるレコードのレコード長を格納する(ステップS112)。
【0075】
次に、レコード長が格納されたバイトをスキャンし(ステップS114)、レコードデータが格納されているアドレスへ移り、そのアドレスをアドレス管理用リストに格納する(ステップS116)。
【0076】
その後、変数tempで示されているレコードデータのバイト長分だけさらにバイナリデータのスキャンを行なって(ステップS118)、処理はステップS110に復帰する。
【0077】
次のレコードに対しても同様に、変数tempにレコード長のデータを格納し(ステップS112)、レコード長のバイトをスキャンして(ステップS114)、現在のアドレスすなわちレコード内のデータの先頭アドレスをアドレス管理用リストに格納する(ステップS116)。続いて、変数tempバイト分だけスキャンを行なって(ステップS118)、処理が再びステップS110に復帰する。
【0078】
以下同様にして、バイナリデータに含まれるすべてのレコードの先頭位置のアドレスの格納が完了した場合に、関数newBinaryTable()の処理を終了する。
【0079】
このような処理が終了すると、CPU207は、ユーザがリモコン104により天気予報の対象地域の選択を行なうのを待機することになる。
【0080】
図9は、図8に示したような処理を行なって、アドレス管理用メモリ206中にアドレス管理用リストが格納された後の、レコードデータの取得処理を示すフローチャートである。
【0081】
すなわち、ユーザがリモコン104により天気予報の対象地域の選択を行なった後に、図5に示したプログラムの処理において、関数toString()や、関数toNumber()に処理が行なわれる際の処理のフローを示している。
【0082】
図9を参照して、関数toString(row, column)や関数toNumber(row, Column)が呼出されると(ステップS200)、これら引数rowの大きさとアドレス管理用リストの格納レコード数との比較が行なわれる(ステップS202)。
【0083】
引数rowがアドレス管理用リストの格納レコード数以上の場合、関数toString()や関数toNumber()は、引数値がエラーを示す値“false”を返す(ステップS204)。
【0084】
一方、ステップS202において、引数rowがアドレス管理用リストの格納レコード数よりも少ない場合、続いて、アドレス管理用リストのインデックスの値が引数rowである位置に対応するアドレス値の取得が行なわれる(ステップS210)。
【0085】
続いて、アドレス管理用リストから取得したアドレスをもとに、バイナリデータからレコードデータの読込が行なわれ(ステップS212)、読込まれたレコードデータから、図5のフォーマット指定に基づいて、引数columnで指定される位置のデータの取得が行なわれる(ステップS214)。
【0086】
以上の処理が終了した段階で処理が終了し、正常終了であることを示す返り値“true”がメインルーチンに返される(ステップS216)。
【0087】
このような処理により、ユーザが天気情報を画面上で見ようとした場合に、各地の天気情報を格納したバイナリデータの先頭から、所望の地域に対応したレコードまでスキャンしてデータの読出しを行なうという必要がなく、当該所望の地域に対応したレコードをそのアドレスにより直接参照できるので、天気情報の表示までの所要時間を短縮することができる。
【0088】
[作成タイミング2]
以上説明したような作成タイミング1の処理では、アドレス管理用リストへバイナリデータの各レコードの先頭位置のアドレスを格納する処理を、関数newBinaryTable()がメインルーチンから呼出された時点で行なっていた。
【0089】
これに対して、メインルーチンにおいて、関数newBinaryTable()が呼出された時点ではなく、図5に示したプログラム処理内において、関数toString()や関数toNumber()が実行された際に、この関数の引数で指定されたレコードまでについて、その都度アドレス管理用リストを作成して、アドレス管理用メモリ206に格納するという処理を行なうことも可能である。
【0090】
図10は、このようにレコードデータの取得処理が行なわれるごとに逐次的にアドレス管理用リストを作成する処理を示すフローチャートである。
【0091】
図10に示す処理では、関数toString()や関数toNumber()の処理で初めて読込が行なわれるファイルの場合、まだアドレス管理用リストにはレコード先頭位置を示すアドレスが格納されていない状態である。このため、所望のレコードまでのデータを1レコードずつスキャンし、その際、各レコードの先頭位置を逐次アドレス管理用リストに格納するという処理を行なう。
【0092】
すなわち、図10を参照して、関数toString(row, column)や関数toNumber(row, column)が呼出されると(ステップS300)、まず、読出対象となっているファイルが、初めてデータの読込を行なうファイルであるか否かの判定が行なわれる(ステップS302)。初めて読込むファイルでない場合は、後に説明する「処理2」に処理が移行する(ステップS304)。
【0093】
一方、初めて読込むファイルである場合(ステップS302)、変数indexに0が代入され、変数maxIndexに引数rowが代入される(ステップS310)。
【0094】
続いて、バイナリデータのスキャンが開始され、先頭のレコードに対応するレコード長が変数tempに代入され、インデックスの値が1だけインクリメントされる(ステップS312)。
【0095】
次に、レコード長を表すバイト(たとえば、図6の説明では1バイト分)についてはバイナリデータをスキャンし(ステップS314)、レコード長を表わすバイトの次のアドレスをアドレス管理用リストに当該レコードの先頭アドレスとして格納する(ステップS316)。
【0096】
次に、変数indexの値と、引数rowの値とが比較される。変数indexの値が引数row以下である場合は、処理はステップS320に移行して、変数tempで表わされるバイト分だけバイナリデータをスキャンした上で、再び処理がステップS312に復帰する。ステップS312では、次のレコードに対応するレコード長を表すバイトから次のレコードのレコード長のデータを読取り、これを変数tempに代入し、変数indexの値を1だけインクリメントする。
【0097】
以下、同様の処理がステップS318まで繰返される。
一方、ステップS318において、変数indexが引数rowよりも大きい場合は、現在の位置が引数rowによって指定されたレコードであるため、現在の位置からレコードデータの読込が行なわれる(ステップS322)。
【0098】
読込まれたレコードデータから、続いて、引数columnの位置のデータの取得が行なわれ(ステップS324)、処理が終了して、正常終了であることを示す値“true”がメインルーチンに返される(ステップS326)。
【0099】
図11は、図10において示した「処理2」、すなわち、関数toString(row, column)や関数toNumber(row, column)が呼出された際に、読出の対象となるファイルが初めて読込むファイルではなく、2回目以降の読出処理である場合の処理を示すフローチャートである。
【0100】
すなわち、「処理2」が開始されると(ステップS304)、まず、所望のレコードのインデックスrowが、アドレス管理用リストに格納されたレコード数を示す値maxIndexよりも小さいか否かの判定が行なわれる(ステップS402)。
【0101】
インデックスrowがレコード数maxIndex以下である場合、続いて、アドレス管理用リストのインデックスが引数rowである位置のアドレスをアドレス管理用リストから取得する(ステップS410)。
【0102】
取得したアドレスをもとに、バイナリデータからレコードデータの読込が行なわれ(ステップS412)、レコードデータから引数columnの位置のデータの取得が行なわれる(ステップS414)。
【0103】
以上により、処理が終了し、正常終了であることを示す値“true”がメインルーチンに返される(ステップS416)。
【0104】
一方、ステップS402において、所望のレコードのインデックスrowがアドレス管理用リストに格納されたレコード数maxIndexよりも大きい場合、アドレス管理用リストのインデックスがmaxIndexである位置のアドレスを、すなわち、アドレス管理用リストに格納された最後尾のレコードの先頭位置のアドレスを取得する(ステップS420)。
【0105】
この取得されたアドレスからレコード長のバイト分だけアドレスを引き戻した後(ステップS422)、所望のレコードまでのデータを1レコードずつスキャンする。すなわち、まず、変数indexに変数maxIndexの値が代入され、変数maxIndexには引数rowの値が代入される(ステップS424)。
【0106】
続いて、現状のレコードの先頭位置の1バイトのデータから、レコード長に相当するデータを取得して、変数tempに代入し、変数indexの値を1だけインクリメントする(ステップS426)。
【0107】
次に、レコード長のバイト+変数tempのバイト分のデータをスキャンし(ステップS428)、処理は、「処理3」に移行する(ステップS430)。
【0108】
図12は、図11に示した「処理3」を示すフローチャートである。
図12を参照して、「処理3」にCPU207の処理が移行すると(ステップS430)、続いて、読出対象となっているバイナリデータの最終データまで処理が終了しているか否かの判定が行なわれる(ステップS432)。
【0109】
データが最終データまで到達している場合は、エラー終了として、メインルーチンに値“false”が返される(ステップS434)。
【0110】
一方、データが最終位置までスキャンされていない場合は(ステップS432)、変数tempに現在のレコードの先頭のデータからレコード長が読出され代入され、かつ変数indexの値が1だけインクリメントされる(ステップS440)。
【0111】
次に、レコード長を表わすバイトをスキャンし(ステップS442)、現在のレコードのデータ内容を表わす領域の先頭のアドレスをアドレス管理用リストに格納する(ステップS444)。
【0112】
続いて、変数indexの値と引数rowとの値が比較され(ステップS446)、変数indexが引数row以下である場合は、変数tempバイト分だけデータのスキャンが行なわれて(ステップS448)、処理は、ステップS432に復帰する。
【0113】
一方、ステップS446において、変数indexの値が引数rowよりも大きい場合は、現在の位置からレコードデータの読込が行なわれ(ステップS450)、レコードデータから引数columnの位置のデータの取得が行なわれる(ステップS452)。
【0114】
以上により処理が終了して、正常終了であることを示す値“true”がメインルーチンに返される(ステップS454)。
【0115】
このような処理を行なうことで、関数toString()や関数toNumber()がメインルーチンから呼出されるごとに、逐次各レコードの先頭位置をアドレス管理用リストに格納するので、一括して各レコードの先頭位置を探索してアドレス管理用リストに格納する場合に比べて、最初のデータの表示までの時間を短縮することが可能となる。
【0116】
なお、以上の説明では、可変長レコードの先頭の直前に1バイトのレコード長を示すデータが配置されるものとして説明したが、レコード長を示すデータの大きさは、さらに大きなものでも、あるいはより小さいものでもよく、レコード長を示すデータの位置も、可変長レコードの先頭の直前に限定されるものではない。たとえば、可変長レコードの先頭とレコード長を示すデータと間に所定の大きさの管理データ等が挿入されていてもよい。
【0117】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0118】
【発明の効果】
以上説明したとおり、本発明に係るデータ処理システムおよびそれを用いたデータ表示装置によれば、データ列に対応したアドレス管理リストを予め作成することで、少なくとも一度取得したレコードのインデックスよりも小さいインデックスのレコードデータを取得する場合、高速にレコードデータを取得できる。
【0119】
また、一度取得したレコードのインデックスよりも大きいインデックスのレコードデータを取得する場合も、一度取得したレコードのアドレス位置からスキャンし当該レコードデータを取得することにより、データ列の先頭から検索する方法に比べて、高速にレコードデータを取得できる。
【0120】
すなわち、アドレスを管理するためのリストの追加のみで、可変長のレコードから構成されるデータ列から所望のレコードデータを取得する際の所要時間を短縮することが可能となる。
【図面の簡単な説明】
【図1】 本発明に係るデータ処理システムを備えるデータ表示装置1000の構成の例を示した概念図である。
【図2】 図1に示した受信機101の内部構成を説明するための概略ブロック図である。
【図3】 データ放送コンテンツに基づいた表示例を示す第1の概念図である。
【図4】 データ放送コンテンツに基づいた表示例を示す第2の概念図である。
【図5】 ユーザからの指示に従って、バイナリデータから天気情報データを取得するための検索処理に対応するプログラムリストを示す。
【図6】 天気情報を表わす可変長レコード形式のバイナリデータtenki.btのダンプ内容を示す概念図である。
【図7】 アドレス管理用メモリ206に格納される、アドレス管理用リストの例を示す図である。
【図8】 アドレス管理用メモリ206に、レコードの先頭位置のアドレスを格納する第1番目の処理を示すフローチャートである。
【図9】 アドレス管理用メモリ206中にアドレス管理用リストが格納された後の、レコードデータの取得処理を示すフローチャートである。
【図10】 レコードデータの取得処理が行なわれるごとに逐次的にアドレス管理用リストを作成する処理を示すフローチャートである。
【図11】 読出の対象となるファイルが初めて読込むファイルではなく、2回目以降の読出処理である場合の処理を示すフローチャートである。
【図12】 図11に示した「処理3」を示すフローチャートである。
【符号の説明】
2 アンテナ、101 受信機、102 ディスプレイ、103 スピーカ、104 リモコン、201 受信部、202 分離部、203 AV処理部、204 コンテンツ用メモリ、205 OSD処理部、206 アドレス管理用メモリ、207 CPU、208 ユーザインターフェイス。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data processing system for processing a data string composed of variable-length records received from the outside, and a configuration of a data display device using the data processing system.
[0002]
[Prior art]
In recent years, also in television broadcasting and the like, character data related to broadcast video information and audio information is transmitted from a broadcasting station, and in parallel with video information and audio information on the receiver side, or only character information is displayed on the display. There is a case where a broadcast form is displayed.
[0003]
For example, when information on weather forecasts is transmitted by data broadcasting in television broadcasting, such information on weather forecasts is continuous binary data, and the content itself may be transmitted as tabular data. Many. On the receiver side, desired data is acquired from the binary data broadcast in this way in accordance with the user's instructions, and weather forecast information such as the area and time requested by the user is displayed on the display. .
[0004]
However, for such weather forecast information, a plurality of variable-length record data are sequentially transmitted as binary data. When acquiring a plurality of variable-length record data from such binary data, the receiver needs to scan one line at a time from the beginning and search for a desired record position.
[0005]
[Problems to be solved by the invention]
However, when the conventional technique as described above is used, if a desired record position is behind the received binary data, it takes a long time to acquire record data by scanning one line at a time from the beginning. There was a problem.
[0006]
The present invention has been made to solve the above-described problems, and an object of the present invention is to arbitrarily specify binary data composed of a plurality of variable-length records sequentially received from the outside in accordance with a user instruction. To obtain a data processing system and a data display device using the data processing system capable of shortening the time to obtain the record data when obtaining the record data.
[0007]
[Means for Solving the Problems]
A data display device according to the present invention includes a receiving unit for receiving data from the outside, and the receiving unit. But Data that acquires arbitrary record data from a received data string consisting of multiple variable-length records according to user instructions Get Processing means and , Retrieved record data of Ahead Store head position address information A Dress management list When , Retrieved record Display means for displaying data, When the address information of the record data designated by the user is not stored in the address management list, it is at the head position of each variable-length record of the data string Record data to be acquired based on the record length information Address information and the record data The address management list is extracted by extracting the address information at the beginning of all consecutive records up to In Hold Includes address information extraction means .
[0021]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
[0022]
FIG. 1 is a conceptual diagram showing an example of the configuration of a data display device 1000 including a data processing system according to the present invention.
[0023]
In FIG. 1, as an example, the receiver 101 capable of receiving the data broadcast as described above has a configuration in which the data processing system according to the present invention is used and the data display device 1000 is realized. Show.
[0024]
Referring to FIG. 1, receiver 101 receives data broadcast content multiplexed with video and audio streams via antenna 2, and displays 102 and speaker 103 according to information described in the data broadcast content. Video, audio, text, graphics, etc.
[0025]
The user can use the remote controller 104 to select a data broadcasting service and obtain desired information.
[0026]
The example shown in FIG. 1 shows a state in which the user selects the Tokyo region as the target of the weather forecast when obtaining information on the weather forecast for tomorrow's weather in each place. Therefore, “Tokyo” is selected on the display 102 and is surrounded by a square frame on the screen.
[0027]
FIG. 2 is a schematic block diagram for explaining the internal configuration of the receiver 101 shown in FIG.
[0028]
Referring to FIG. 2, RF signal received by antenna 2 in receiver 101 is selected in receiving unit 201, subjected to demodulation processing, decoding processing, and the like, and provided to separation unit 202. Separating section 202 separates the signal from receiving section 201 into a signal for video / audio information and data broadcast content. The video and audio streams are sent from the separation unit 202 to the AV processing unit 203, and the data broadcast content is sent to the content memory 204. The AV processing unit 203 receives the video and audio streams and converts the corresponding color image into a displayable signal.
[0029]
On the other hand, the CPU 207 processes the data broadcast content stored in the content memory 204 to display characters, graphics, and the like at a designated position on the screen of the display 102 designated by the data broadcast content. The signal is supplied to an on-screen display processing unit (hereinafter referred to as “OSD processing unit”) 205, and further, the OSD processing unit 205 combines the video data with characters, graphics, etc., and then displays them on the display 102. The
[0030]
An input signal from the user is transmitted from the remote control 104 to the CPU 207 via the user interface 208. The CPU 207 executes processing for input information described in the program received as the data broadcast content, and performs media display control and receiver operation control.
[0031]
Next, a processing procedure when binary data is included in the data broadcast content will be described.
[0032]
3 and 4 are conceptual diagrams showing display examples based on the data broadcast content.
[0033]
First, as shown in FIG. 3, a region selection screen is displayed on the weather forecast information screen. In the example illustrated in FIG. 3, for example, it is assumed that the user selects a region where the user wants to see the weather forecast from Sapporo, Tokyo, Osaka, and Fukuoka. FIG. 3 shows a state in which Tokyo is selected by an instruction from the user via the remote controller 104.
[0034]
FIG. 4 shows a state in which the information on tomorrow's weather in the Tokyo region selected by the user as shown in FIG. 3 is displayed.
[0035]
In the display shown in FIG. 4, “Tomorrow's weather” on the first line, “Weather” on the second line, “Highest temperature” and “° C.” on the third line, “Lowest temperature” on the fourth line , “° C.” and “return” are areas in which a fixed display is performed regardless of which area the user selects.
[0036]
On the other hand, the display of “Tokyo” on the first line, “cloudy after clear” on the second line, “22” on the third line, “16” on the fourth line, etc. depends on which region the user selects. The display content is changed.
[0037]
As will be described later, the part whose display contents are changed according to the user's selection is transmitted from the broadcast station to the receiver 101 as tabular data.
[0038]
That is, the weather information of the selected region is included as binary data representing tabular data in the data broadcast content, and when displaying the screen of FIG. 4, the weather information data is searched from this binary data. Will be.
[0039]
FIG. 5 corresponds to a search process for acquiring weather information data from binary data in accordance with an instruction from the user among data broadcast contents for realizing the weather forecast providing service as shown in FIGS. Shows the program list to be executed.
[0040]
Here, the program as shown in FIG. 5 is described in “BML (Broadcast Markup Language)”, which is a language whose specifications are changed for broadcasting based on XML (eXtensible Markup Language).
[0041]
Referring to FIG. 5, first, variable bt is declared by “var bt” on the first line.
[0042]
Subsequently, a function bt_new () for reading binary data “tenki.bt”, which is tabular data received from the broadcasting station, into the variable bt is defined.
[0043]
In this way, from the binary data corresponding to the weather information read into the variable bt, according to the selected region by the function getTenkiData (location) with the variable location representing the region specified by the user as an argument, The search and acquisition of weather, maximum temperature and minimum temperature values is performed. The acquired weather, maximum temperature, and minimum temperature are displayed on the screen by the function dispData ().
[0044]
Here, the function newBinaryTable (X, Y) used in the definition expression of the function bt_new () first indicates reading data from the binary data specified by the first argument X. Furthermore, the second argument Y of this function “1, S: 1V, S: 1V, I: 1B, I: 1B” indicates the format of the record data stored in the binary data indicated by X. ing.
[0045]
That is, the first “1” indicates that the record length of each variable-length record is stored in the first byte of the variable-length record of binary data. The subsequent “S: 1V” indicates that there is first variable-length character string data in which the data length is described in the first byte at the beginning of each variable-length record. Further, following this first variable length character string data, there is second variable length character string data represented by “S: 1V”. Following this second variable-length character string data, each variable-length record has two data represented by “I: 1B”. Here, “I: 1B” indicates that integer value data (represented by “I”) having a fixed length of 1 byte (represented by “1B”) is stored in the record. Yes.
[0046]
On the other hand, from the fifth line, a function getTenkiData () for acquiring weather information data from binary data is defined based on the area location designated by the user. In this definition, first, "var tenki, maxTemp, minTe mp Are the variables tenki, maxTemp, minTe representing the weather, maximum temperature, and minimum temperature, respectively. mp Is declared. The function bt.toString (X, Y) is a function for obtaining character string data from the binary data table, and the first argument X represents the index of the record position in the binary table. The second argument Y indicates the index of the data position in the record.
[0047]
The function toNumber (X, Y) is also a function for obtaining integer value data from binary data. The argument X is an index of a record position in the binary table, and the argument Y is data in the record. The position index is shown.
[0048]
FIG. 6 is a conceptual diagram showing dump contents of binary data tenki.bt in variable-length record format representing weather information.
[0049]
In FIG. 6, character and numerical data corresponding to the dump contents of binary data are shown below for comparison.
[0050]
In FIG. 6, the bytes enclosed by a square indicate the length of each record. That is, in the second argument in the function newBinaryTable () function described with reference to FIG. 5, as indicated by the leading “1”, the first byte of each record has data indicating the record length of the record. Is present.
[0051]
For example, in the record showing the weather information of the first Sapporo, “0C” is designated as the record length, so this record has 12 bytes of data after the data showing the record length. It is shown that this is a record. That is, the data of each record starts from the byte next to the byte enclosed by a square and extends to the byte before the byte enclosed by the next square.
[0052]
Next, looking at the decode in which the weather information of “Sapporo” is stored, as shown in the second argument of the function newBinaryTable (), the next data is “S: 1V” as the format. is there. For this reason, the first “04” indicates the number of bytes of variable-length character string data that follows. That is, 4-byte data from “8E” to “79” following “04” is data corresponding to the character string “Sapporo”.
[0053]
Further, according to the data format of the second argument of the function newBinaryTable () function, “S: 1V” data, that is, variable-length character string data whose data length is indicated in the first byte is stored. Will be. That is, “04” following the data “Sapporo” indicates that the character string data following this is 4 bytes. Therefore, “90” to “EA” correspond to the character string “fine”.
[0054]
Furthermore, according to the data format of the second argument of the function newBinaryTable (), two pieces of data represented by “I: 1B” follow the character string data “sunny”. As described above, “I: 1B” indicates that integer data (represented by “I”) is fixed-length 1-byte data.
[0055]
Therefore, 1-byte data of hexadecimal “12” following “clear” data indicates the maximum temperature “18” in decimal display, and the subsequent hexadecimal data of “0A” of 1 byte is displayed. In the decimal display, the minimum temperature of “10” is expressed.
[0056]
This completes the data for the weather information of “Sapporo” in the first record, and subsequently there is a record corresponding to “Tokyo”. It can be seen that the record corresponding to “Tokyo” starts immediately after the 1-byte data “14”, that is, has a length of 20 bytes.
[0057]
Similarly, the weather information of “Osaka” and “Fukuoka” is transmitted from the broadcast station as a series of binary data composed of variable-length records.
[0058]
After the weather information of the variable-length record represented by the continuous binary data as described above is transmitted by broadcasting, when the user wants to know the weather information of “Tokyo”, for example, the remote controller 104 sends it to the receiver 101. Instructs the selection of “Tokyo”. In response to this, the CPU 207 determines from the broadcast binary data also stored in the content memory 204 based on the search program shown in FIG. 5 stored in the content memory 204. Get Tokyo weather information.
[0059]
More specifically, in the program shown in FIG. 5, data is acquired from the first data position in the first record by the processing of the function bt.toString (1,1).
[0060]
At this time, according to the conventional method, for the record including the 0th Sapporo weather information, the length of the record represented by “0C” at the head, that is, data of 12 bytes is scanned from the head. Thus, it is detected that the length of the record in which the weather information of Tokyo of the subsequent first record is stored is 20 bytes (0x14), and the weather is determined from the first data of the data of the 20-byte record. The character string “cloudy after clear” is extracted as information. Similarly, the highest temperature and the lowest temperature in Tokyo are extracted from the binary data by the processing of the function bt.toNumber (1,2) and the function bt.toNumber (1,3).
[0061]
When retrieving weather information for Osaka and Fukuoka, Osaka and even Fukuoka data are extracted from a series of binary data by scanning record data for Sapporo and Tokyo from the top.
[0062]
As described above, in the conventional method, even when a desired record exists behind the binary data, it is necessary to scan the records sequentially from the top, and it takes time to extract the record data from the large binary data. Will end up.
[0063]
Therefore, in the receiver 101 according to the present invention, an address management memory 206 is provided as shown in FIG. 2, for example, each record of binary data when the function bt_new () in FIG. Is added to the address management memory 206 as a list.
[0064]
If each weather information is extracted by referring to such a list, the search time can be shortened in the second and subsequent processes in which the user selects a region using the remote controller 104.
[0065]
FIG. 7 is a diagram illustrating an example of an address management list stored in the address management memory 206. As shown in FIG. 7, it is stored that the head address of record [0], which is the 0th record, is address “00000001”. The same applies to other records.
[0066]
That is, as shown in FIG. 7, the address management memory 206 associates with the values of 0 to 3 of the index of each record, and is the head position of each record data. Holds the byte address. The address management list stored in the address management memory 206 is list data of fixed-length records.
[0067]
[When to create an address management list]
There are several methods as described below as to when such an address management list is created and stored in the address management memory 206 up to which record address.
[0068]
[Creation timing 1]
FIG. 8 is a flowchart showing a first process of storing the address of the start position of the record in the address management memory 206 as described above.
[0069]
Note that the binary data read processing and address management list creation processing by the function newBinaryTable () as described below are performed when reception of the binary data is completed, and the start position of all record data received in advance. Address information can be created as an address management list.
[0070]
That is, referring to FIG. 8, when CPU 207 executes the program shown in FIG. 5, function newBinaryTable () is called (step S100).
[0071]
The file storing the binary data is read from the content memory 204 (step S102).
[0072]
At this time, if the file reading has failed (step S104), processing for returning “false” indicating that an error has occurred is performed in the main routine to complete the error (step S106).
[0073]
On the other hand, if the file is normally read in step S104, it is subsequently determined whether or not the scanning operation for the read file is completed (step S110).
[0074]
If the scan operation has not been completed, the record length of the record to be scanned is stored in the variable temp (step S112).
[0075]
Next, the byte storing the record length is scanned (step S114), the address is moved to the address where the record data is stored, and the address is stored in the address management list (step S116).
[0076]
Thereafter, the binary data is further scanned by the byte length of the record data indicated by the variable temp (step S118), and the process returns to step S110.
[0077]
Similarly, for the next record, the record length data is stored in the variable temp (step S112), the record length byte is scanned (step S114), and the current address, that is, the start address of the data in the record is set. Store in the address management list (step S116). Subsequently, scanning is performed for the variable temp bytes (step S118), and the process returns to step S110 again.
[0078]
Similarly, when the storage of the addresses of the start positions of all the records included in the binary data is completed, the processing of the function newBinaryTable () is terminated.
[0079]
When such processing is completed, the CPU 207 waits for the user to select a weather forecast target area using the remote controller 104.
[0080]
FIG. 9 is a flowchart showing record data acquisition processing after the processing shown in FIG. 8 is performed and the address management list is stored in the address management memory 206.
[0081]
That is, after the user selects the target area of the weather forecast using the remote controller 104, the processing flow when processing is performed on the function toString () and the function toNumber () in the processing of the program shown in FIG. Show.
[0082]
Referring to FIG. 9, when the function toString (row, column) or function toNumber (row, Column) is called (step S200), the size of the argument row is compared with the number of stored records in the address management list. Performed (step S202).
[0083]
When the argument row is greater than or equal to the number of records stored in the address management list, the function toString () and the function toNumber () return a value “false” indicating that the argument value indicates an error (step S204).
[0084]
On the other hand, if the argument row is smaller than the number of records stored in the address management list in step S202, the address value corresponding to the position where the index value of the address management list is the argument row is acquired (step S202). Step S210).
[0085]
Subsequently, based on the address acquired from the address management list, the record data is read from the binary data (step S212). Based on the format specification of FIG. Data at the designated position is acquired (step S214).
[0086]
When the above process is completed, the process ends, and a return value “true” indicating normal end is returned to the main routine (step S216).
[0087]
By such processing, when the user wants to see the weather information on the screen, the data is read by scanning from the top of the binary data storing the weather information of each place to the record corresponding to the desired area. There is no need, and the record corresponding to the desired area can be directly referred to by its address, so the time required for displaying the weather information can be shortened.
[0088]
[Creation timing 2]
In the processing at the creation timing 1 as described above, the processing for storing the address of the start position of each record of binary data in the address management list is performed when the function newBinaryTable () is called from the main routine.
[0089]
On the other hand, when the function toString () or the function toNumber () is executed in the program processing shown in FIG. 5 instead of when the function newBinaryTable () is called in the main routine, It is also possible to perform a process of creating an address management list and storing it in the address management memory 206 each time up to the record designated by the argument.
[0090]
FIG. 10 is a flowchart showing processing for sequentially creating an address management list every time record data acquisition processing is performed as described above.
[0091]
In the process shown in FIG. 10, in the case of a file that is read for the first time in the function toString () or function toNumber () process, the address management list does not yet store an address indicating the record head position. For this reason, the data up to a desired record is scanned one record at a time, and at that time, the head position of each record is sequentially stored in the address management list.
[0092]
That is, referring to FIG. 10, when a function toString (row, column) or a function toNumber (row, column) is called (step S300), the file to be read first reads data for the first time. It is determined whether the file is to be performed (step S302). If the file is not read for the first time, the processing shifts to “processing 2” described later (step S304).
[0093]
On the other hand, if it is the first file to be read (step S302), 0 is substituted for the variable index, and the argument row is substituted for the variable maxIndex (step S310).
[0094]
Subsequently, scanning of binary data is started, the record length corresponding to the first record is substituted into the variable temp, and the index value is incremented by 1 (step S312).
[0095]
Next, binary data is scanned for a byte representing the record length (for example, one byte in the description of FIG. 6) (step S314), and the next address of the byte representing the record length is stored in the address management list. It is stored as the head address (step S316).
[0096]
Next, the value of the variable index is compared with the value of the argument row. If the value of the variable index is equal to or less than the argument row, the process proceeds to step S320, the binary data is scanned for the bytes represented by the variable temp, and the process returns to step S312 again. In step S312, the record length data of the next record is read from the byte representing the record length corresponding to the next record, is substituted for the variable temp, and the value of the variable index is incremented by one.
[0097]
Thereafter, the same processing is repeated until step S318.
On the other hand, if the variable index is larger than the argument row in step S318, the current position is the record specified by the argument row, so the record data is read from the current position (step S322).
[0098]
Subsequently, the data at the position of the argument column is acquired from the read record data (step S324), the processing is completed, and a value “true” indicating normal termination is returned to the main routine ( Step S326).
[0099]
FIG. 11 shows the “process 2” shown in FIG. 10, that is, the file to be read for the first time when the function toString (row, column) or the function toNumber (row, column) is called. FIG. 10 is a flowchart illustrating a process in the case of the second and subsequent reading processes.
[0100]
That is, when “processing 2” is started (step S304), it is first determined whether or not the index row of the desired record is smaller than the value maxIndex indicating the number of records stored in the address management list. (Step S402).
[0101]
If the index row is equal to or smaller than the record number maxIndex, the address at the position where the index of the address management list is the argument row is acquired from the address management list (step S410).
[0102]
Based on the acquired address, the record data is read from the binary data (step S412), and the data at the position of the argument column is acquired from the record data (step S414).
[0103]
As described above, the process ends, and a value “true” indicating normal end is returned to the main routine (step S416).
[0104]
On the other hand, if the index row of the desired record is larger than the number of records maxIndex stored in the address management list in step S402, the address at the position where the index of the address management list is maxIndex, that is, the address management list The address of the head position of the last record stored in is acquired (step S420).
[0105]
After retrieving the address from the acquired address by the byte of the record length (step S422), the data up to the desired record is scanned one record at a time. That is, first, the value of variable maxIndex is assigned to variable index, and the value of argument row is assigned to variable maxIndex (step S424).
[0106]
Subsequently, data corresponding to the record length is acquired from 1-byte data at the head position of the current record, is substituted into the variable temp, and the value of the variable index is incremented by 1 (step S426).
[0107]
Next, the data of the byte of the record length + the data of the variable temp is scanned (step S428), and the processing shifts to “processing 3” (step S430).
[0108]
FIG. 12 is a flowchart showing the “processing 3” shown in FIG.
Referring to FIG. 12, when the process of CPU 207 shifts to “Process 3” (step S430), it is subsequently determined whether or not the process has been completed up to the final binary data to be read. (Step S432).
[0109]
If the data has reached the final data, the value “false” is returned to the main routine as an error end (step S434).
[0110]
On the other hand, if the data has not been scanned to the final position (step S432), the record length is read from the first data of the current record and assigned to the variable temp, and the value of the variable index is incremented by 1 (step S432). S440).
[0111]
Next, the byte representing the record length is scanned (step S442), and the head address of the area representing the data content of the current record is stored in the address management list (step S444).
[0112]
Subsequently, the value of the variable index and the value of the argument row are compared (step S446). If the variable index is equal to or less than the argument row, data is scanned for the variable temp bytes (step S448), and the process is performed. Returns to step S432.
[0113]
On the other hand, if the value of the variable index is larger than the argument row in step S446, the record data is read from the current position (step S450), and the data at the position of the argument column is acquired from the record data (step S450). Step S452).
[0114]
The process is completed as described above, and a value “true” indicating normal termination is returned to the main routine (step S454).
[0115]
By performing such processing, each time the function toString () or function toNumber () is called from the main routine, the start position of each record is sequentially stored in the address management list. Compared with the case where the head position is searched and stored in the address management list, the time until the first data is displayed can be shortened.
[0116]
In the above description, the data indicating the 1-byte record length is arranged immediately before the beginning of the variable-length record. However, the data size indicating the record length may be larger or larger. The position of the data indicating the record length is not limited to just before the beginning of the variable length record. For example, management data or the like having a predetermined size may be inserted between the beginning of the variable length record and the data indicating the record length.
[0117]
The embodiment disclosed this time should be considered as illustrative in all points and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.
[0118]
【The invention's effect】
As described above, according to the data processing system and the data display device using the data processing system according to the present invention, by creating an address management list corresponding to the data string in advance, an index smaller than the index of the record acquired at least once Record data can be acquired at high speed.
[0119]
In addition, when acquiring record data with an index larger than the index of the record once acquired, scanning from the address position of the record acquired once and acquiring the record data, compared to the method of searching from the beginning of the data string Record data can be acquired at high speed.
[0120]
That is, it is possible to shorten the time required to obtain desired record data from a data string composed of variable-length records only by adding a list for managing addresses.
[Brief description of the drawings]
FIG. 1 is a conceptual diagram showing an example of the configuration of a data display device 1000 including a data processing system according to the present invention.
2 is a schematic block diagram for explaining an internal configuration of receiver 101 shown in FIG. 1; FIG.
FIG. 3 is a first conceptual diagram showing a display example based on data broadcast content.
FIG. 4 is a second conceptual diagram showing a display example based on data broadcast content.
FIG. 5 shows a program list corresponding to a search process for acquiring weather information data from binary data in accordance with an instruction from a user.
FIG. 6 is a conceptual diagram showing dump contents of binary data tenki.bt in a variable-length record format representing weather information.
7 is a diagram showing an example of an address management list stored in an address management memory 206. FIG.
FIG. 8 is a flowchart showing a first process of storing the address of the start position of a record in the address management memory 206;
FIG. 9 is a flowchart showing record data acquisition processing after the address management list is stored in the address management memory 206;
FIG. 10 is a flowchart showing processing for sequentially creating an address management list every time record data acquisition processing is performed.
FIG. 11 is a flowchart showing a process when a file to be read is not a file to be read for the first time but a read process after the second time.
FIG. 12 is a flowchart showing “Process 3” shown in FIG. 11;
[Explanation of symbols]
2 antenna, 101 receiver, 102 display, 103 speaker, 104 remote control, 201 receiving unit, 202 separation unit, 203 AV processing unit, 204 content memory, 205 OSD processing unit, 206 address management memory, 207 CPU, 208 user Interface.

Claims (1)

外部からデータを受信するための受信手段と、
前記受信手段受信した複数の可変長レコードで構成されるデータ列から、ユーザの指示に従って任意のレコードデータを取得するデータ取得処理手段と
取得したレコードデータ頭位置のアドレス情報を格納するドレス管理リスト
取得したレコードデータを表示するための表示手段とを備え、
前記ユーザが指示したレコードデータのアドレス情報が前記アドレス管理リストに格納されていないとき、前記データ列の各可変長レコードの先頭位置にあるレコード長情報に基づいて、取得対象のレコードデータのアドレス情報を取得すると共に、該レコードデータまでの連続するすべてのレコード先頭位置のアドレス情報を抽出して、前記アドレス管理リスト保持させるアドレス情報抽出手段を備える、データ表示装置。
Receiving means for receiving data from outside;
From a data sequence composed of a plurality of variable-length records received by the receiving unit, a data acquisition processing means for acquiring an arbitrary record data in accordance with an instruction from the user,
And address management list that stores the acquired address information of the beginning position of the record data,
A display means for displaying the acquired record data,
When the address information of the record data designated by the user is not stored in the address management list, the address information of the record data to be acquired is based on the record length information at the head position of each variable-length record of the data string acquires the, extracts the address information of all the records starting position contiguous to the record data, an address information extraction means for holding the address management list, data display device.
JP2001224463A 2001-07-25 2001-07-25 Data display device Expired - Fee Related JP4194258B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001224463A JP4194258B2 (en) 2001-07-25 2001-07-25 Data display device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001224463A JP4194258B2 (en) 2001-07-25 2001-07-25 Data display device

Publications (3)

Publication Number Publication Date
JP2003036258A JP2003036258A (en) 2003-02-07
JP2003036258A5 JP2003036258A5 (en) 2005-01-13
JP4194258B2 true JP4194258B2 (en) 2008-12-10

Family

ID=19057612

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001224463A Expired - Fee Related JP4194258B2 (en) 2001-07-25 2001-07-25 Data display device

Country Status (1)

Country Link
JP (1) JP4194258B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5017811B2 (en) * 2005-07-19 2012-09-05 ソニー株式会社 Data transmission system, data acquisition device, data acquisition method, data storage device, data transmission method, and program thereof
JP2007102559A (en) * 2005-10-05 2007-04-19 Toshiba Corp Portable electronic equipment
JP5233255B2 (en) * 2007-11-30 2013-07-10 セイコーエプソン株式会社 Variable length data storage device, variable length data storage method, variable length data read method and program thereof

Also Published As

Publication number Publication date
JP2003036258A (en) 2003-02-07

Similar Documents

Publication Publication Date Title
US5943605A (en) Arrangement for controlling extraction of data from a broadband digital stream employing a symbol table for translating symbolic program names to program and channel numbers
US9213464B2 (en) Providing graphic user interface based upon usage history
KR101356503B1 (en) Method for displaying internet television infomation of broadcasting receiver and broadcasting receiver enabling of the method
US7944507B2 (en) Video processing apparatus and video processing method
US5914719A (en) Index and storage system for data provided in the vertical blanking interval
KR101234156B1 (en) Method for providing external-input list using item-grouping and video apparatus thereof
KR100765740B1 (en) Method for recording and searching A/V signal and apparatus thereof
JP4194258B2 (en) Data display device
CN103856800A (en) Method and apparatus for set top box to read external connection storage device
JP3599867B2 (en) Method of processing text data representing textual information to guide a user in controlling various functions of a system
JP2596424B2 (en) Teletext receiver
JP4427597B1 (en) Digital television broadcast receiver
JP2004134858A (en) Broadcast receiver and program retriever
JP2511254B2 (en) Preset method in teletext receiver
JP2002199294A (en) Digital television broadcast receiver
US20050102623A1 (en) AV decoding/playing/copying system and related method for displaying a DBCS through an OSD
JP6154182B2 (en) Video output device, subtitle server device, video output method, and program
JP2001268464A (en) Digital television broadcast receiver
JP3623719B2 (en) Method for generating program identifier for electronic program guide
KR20010003826A (en) Broadcasting Data Buffering Method
KR100777298B1 (en) Television receiver and method for writing a channel map on television receiver
JPH05284477A (en) Television receiver
KR19990056430A (en) How to Create List Guides for Digital Satellite Broadcasting Receivers
JPH06319121A (en) Teletext receiver
JP4456993B2 (en) Data processing apparatus, method thereof, program thereof, and recording medium

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040218

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080325

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080805

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080826

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080922

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

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees