2010年 秋期 応用情報技術者試験 問7

携帯電話への録音機能追加

A社は携帯電話メーカである。携帯電話をボイスレコーダとして使用できるよう,録音機能を追加することになった。

〔録音機能,及び関連するタスク,デバイス,メモリの関係〕

録音機能はほかの機能と並行的に動作する。録音された音声データは,携帯電話の不揮発性メモリに保存して,再生及び外部メディアへの取出しができる。また,録音中に録音時間及び音声データのメモリ残量(以下,録音詳細情報という)をLCDに表示する。

録音機能に関連するタスク,デバイス及びメモリの関係を図1に示す。

凡例:
□:タスク
◯:デバイス
⚫:メモリ
⟷:メモリアクセス
↔:デバイス制御
⟷:メッセージ
UIタスク:ユーザインタフェースタスク

・オーディオデバイスは,マイクから入力された音声のアナログ信号をサンプリングし,PCM符号に変換して,録音データとしてサンプリング専用RAMに一時的に格納する。

・録音データの音質は,音楽CD並み(サンプリング周波数44.1kHz,量子化ビット数16ビット,チャネル数2ch)とする。

・1秒間の録音データを1ブロックとして格納する。1ブロック当たりのサイズはakバイトである。

・オーディオデバイスは,1秒間の録音データを格納した後,割込みを発生し,録音タスクにメッセージを送信する。

〔ソフトウェア構成〕

録音機能は,UIタスク及び録音タスクで構成され,タスク間の通信にはメッセージを使用する。各タスクの説明を表に示す。

表 タスク一覧
タスク説明優先度
UI・利用者の操作によって,録音タスクに録音開始/停止のメッセージを送信する。
・録音タスクからメッセージを受信すると,LCDに録音詳細情報を表示する。
録音・オーディオデバイスを制御し,録音開始/停止を行う。
・録音中は,次の①~③を繰り返す。
① オーディオデバイスから送られたメッセージを受信すると,サンプリング専用RAMに格納されている録音データを音声データにエンコードする。エンコードは,次のオーディオデバイスの割込み発生までに完了する。
② エンコードした音声データ及び録音詳細情報を不揮発性メモリに保存する。
③ 録音詳細情報を表示するために,UIタスクにメッセージを送信する。

〔不揮発性メモリの構成〕

携帯電話の不揮発性メモリの構成を図2に示す。不揮発性メモリは,利用者設定領域と音声データ領域に分けられる。利用者設定領域には,携帯電話の着信音などの設定情報が格納されている。録音機能を追加するために,音声データのメモリ残量を追加する。一方,音声データ領域には音声データ及び録音時間を格納する。

これらの領域はUIタスク及び録音タスクからアクセスされるので,利用者設定領域セマフォ及び音声データ領域セマフォの二つのバイナリセマフォによって,排他制御を行う必要がある。

〔録音機能の検証〕

録音機能を実現するために,UIタスクでの録音詳細情報表示処理を図3のように,録音タスクでのエンコード処理を図4のようにそれぞれ設計した。録音タスクからUIタスクにメッセージを送信するタイミングについて,次の二つの場合を設定して実機で検証した。

・図4中の(ア)で,録音タスクからUIタスクにメッセージを送信した場合 UIタスク及び録音タスクがともに動作しなくなった。

・図4中の(イ)で,録音タスクからUIタスクにメッセージを送信した場合 録音タスクはb状態となり,UIタスクはc状態となった。

次に,UIタスクはdセマフォを取得できず,e状態となった。

(ア)、(イ)は図4中のポイントを示す
出典:平成22年度 秋期 応用情報技術者試験 午後