IT
高中
已解決

ランレングス圧縮についてです。
1、2行目のデータ量の出し方は理解できたのですがそれ以降がよくわからないです。
そして〈約束〉がなにを言ってるのかさえわかりませんでした。
大まかで申し訳ないですが解説お願いします🙇

4 図のデータ (8×8ビット) のAの部分を0.Bの部分を1として, 以下の約束に従って上から順番に1行ごとに圧縮すると,データ量 は何ビットになるか求めなさい。 また, 圧縮率は何%になるか, 小 数第2位を四捨五入して求めなさい。 <約束> ① 最初のピットは, Aで始まる場合は0, Bで始まる場合は1とする。 ② 次の3ピットは,最初のピットと同じ 文字が続く個数を表す。 ただし, [個 数-1」として表現する ③文字が変わるたびに, ②と同様に3ビ ットで何個続くかを表す。 B B B B B B B B B B B B B B B B BBAAAAAA B B B B B A AA BBBBBAAA BBAAAAAA B B B B B B B B B B B B B B B B 4 データ量 44ビット 圧縮率 68.8% 8-1-7214ビット 1~200-467 1 64×100=6875 44 47
[3] 24×1280×720=22118400[bit] =2764800[B]=2700[KB]=2.6367... 2 39.55GB 4 [MB] 2.64[MB] 解説 静止画 (1フレーム) のデータ量 は、 「1画素のデータ量×画素数」で求 められるので, 24×1024×768=18874368[bit] 動画のデータ量は, 「1フレームのデー 夕量×フレームレート×時間数」 で求め られるので, 18874368 x 60 × 5 × 60 =339738624000[bit] =42467328000[B]=41472000[KB] =40500[MB]=39.55078… [GB] ≒39.55[GB] O (2) × (3) X (4) O (1) (5) ■解説 JPEG形式は, Webページやデ ジタルカメラで利用される。 24ビット フルカラーを扱えるが, 非可逆圧縮であ GIF形式は, Webページや簡単なアニ メーションで利用される。 256色しか表 P1000 現できない。 PNG形式は, Webページで利用される。 24ビットフルカラーを扱え, 可逆圧縮 である。 d データ量: 44ビット 圧縮率: 68.8% 解説 図を分析すると, 行の並びのパタ ーンは3種類あることがわかる。 それは, 1行目のようにBが8つ並ぶパターン, 3行目のようにBが2つ, Aが6つ並ぶ パターン, 4行目のようにBが5つ, A が3つ並ぶパターンである。 これらの表 現は次のようになる。 Bが8つ並んでいるパターンは,最初の ピットはBで始まるので1, 続いてそれ が8つ並ぶので, 8-1=7→111,合わ せて1111となり, データ量は4ビット。 Bが2つ, Aが6つ並ぶパターンは, B が2つの部分は1001, Aが6つの部分 は101, 合わせて1001101となり7ビッ ト。 Bが5つ Aが3つ並ぶパターンは,B が5つの部分は1100, Aが3つの部分 は010, 合わせて1100010となり7ビ ット。 [2] これらより, 4ピット×4行+ 7ピッ ト×2行+ 7ピット×2行=44ビット 圧縮率は,圧縮前のデータが8ピット× 8行=64ビットなので 44÷64 × 100=68.75 小数第2位を四捨五入して 68.8%と求 められる。 3章 章末問題 A 0 0 0 0 1 1 1 1 入力 B 0 0 1 1 0 0 1 1 Ci 0 1 0 1 0 2.75=2+0.75 1 0 1 C 0 0 0 1 0 1 1 1 出力 [p.48] S 0 1 1 0 1 0 0 1 解説 出力Sは,入力 A, B, Ciの桁上 げを無視した加算の結果となっている。 また、出力は,入力 A, B, Ciの桁上 げの結果となっている ① 1101 (2) +0101 (2)=0010 (2) 答え 0010 (2) ② 1010 (2)+1111 (2) = 1001 (2) 答え 1001 (2) ③ 1100 (2) +0110 (2)=0010 (2) 答え 0010 (2) 解説 引く数の2進数の補数を求め, 引 かれる数の2進数に足して桁上がりを無 視すると, 減算と同じ結果になる。 ③3 0100000110000000 ■解説 10進数の2.75を2進数の小数に すると =2' x 1 +2°×0+2 - ' x 1+2 - 2 ×1 =10.11(2) 求められた2進数を浮動小数点数にする と 符号部:正なので0 指数部: 1+15=16より10000 仮数部 011 以上より, 0100000110000000 4 (1) 225KB (2) 23.2GB ■解説 (1) 24[bit] × 320 × 240 =1843200[bit] 15

解答

✨ 最佳解答 ✨

1、2行目の出し方は理解されているようなので、なんとなく先頭のアルファベットとその個数で表せば良いと言うことは分かっている感じですかね。

2進数だと分かりづらいのでまずは10進数で説明します。
3行目はBが2個、Aが6個なのでB2A6のように表せば良いのですが、アルファベットはAとBの2種類だけなので、最初にBが続いていたらその次はAが続いていくし、最初にAが続いていたらその次はBが続いていくことが確定しています。
そのため、B2A6と書かなくてもB26と書くだけでBが2個、Aが6個ということが分かります(最大で8個までなのでBが26個と誤認されることもないです)。こうすることで1ビット分だけデータを短縮できます。

あとはこれをAは0、Bは1にして、個数部分は3ビットの2進数に直せば良いのですが、個数が8の場合は2進数に直すと1000の4ビットになってしまうので個数は-1して全部3ビットで書けるようにします。(8の場合は-1した7を2進数に変えて111になる)
したがって、3行目はB26のBを1、2を001、6を101に変えて1001101と表されます。
あとは他の行でも同じことをやって、全部で何ビットあるかを数え、元の64ビットとの割合を求めればokです。

すみません、長くなってしまったので分かりづらいところがあれば聞いてください。

なむる

ありがとうございます!!!!!
やっと理解できました!

留言
您的問題解決了嗎?