グラフィックLCDの画素に割り当てたメモリの先頭アドレス

まず,直線上の $x = 7$ における画素の $y$ 座標を求めます。 始点 $(5, 4)$ から終点 $(9, 8)$ を結ぶ直線の方程式は,傾きが $\frac{8 - 4}{9 - 5} = \frac{4}{4} = 1$ なので,次のようになります。 $$y - 4 = 1 \times (x - 5) \implies y = x - 1$$ $x = 7$ のとき,$y = 7 - 1 = 6$ となり,対象の画素の座標は $(7, 6)$ です。 次に,画素 $(7, 6)$ が全体の何番目の画素であるかを計算します。 1 行($y$ が 1 増えるごと)には 640 画素あるため,$(0, 0)$ から数えた画素の通し番号 $N$(0 から開始)は次の式で求まります。 $$N = 640 \times y + x = 640 \times 6 + 7 = 3840 + 7 = 3847 \text{ 番目の画素}$$ 各画素には 16 ビット($= 2$ バイト)が割り当てられ,図よりアドレスの 1 番地は「8 ビット($= 1$ バイト)」単位です。したがって,1 画素あたり 2 番地を消費します。 先頭のアドレス番地は次の計算で求まります。 $$\text{アドレス先頭} = 3847 \times 2 = 7694 \text{ 番地}$$ したがって,正解はウとなります。 画素 通し番号 先頭アドレス (0, 0) 0 0番地 (1, 0) 1 2番地 (639, 0) 639 1,278番地 (0, 1) 640 1,280番地 (7, 6) 640×6+7=3,847 7,694番地 通し番号 3,847 をそのまま番地と考えるとア、y=6 の行頭(3,840×2=7,680)で止めるとイになります。

次の方式で画素にメモリを割り当てる 640×480640 \times 480 のグラフィック LCD モジュールがある。始点 (5,4)(5, 4) から終点 (9,8)(9, 8) まで直線を描画するとき,直線上の x=7x = 7 の画素に割り当てられたメモリのアドレスの先頭は何番地か。ここで,画素の座標は (x,y)(x, y) で表すものとする。

〔方式〕

  • メモリは 0 番地から昇順に使用する。

  • 1 画素は 16 ビットとする。

  • 座標 (0,0)(0, 0) から座標 (639,479)(639, 479) までメモリを連続して割り当てる。

  • 各画素は,x=0x = 0 から xx 軸の方向にメモリを割り当てていく。

  • x=639x = 639 の次は x=0x = 0 とし,yy を 1 増やす。

問22 LCDメモリマップ図
出典令和6年度 春期 応用情報技術者試験 午前 問22
ア
3847
イ
7680
ウ
7694
エ
8978