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状態となった。