
EPUBを40MB→8.6MBに減量した話 — 全画像JPEG化と配信コスト(連載⑩)
「日本の測地系がわかる本」制作の裏側を綴る連載、第10回です。前回は文字サイズ可変のリフロー型に合わせた図版設計について書きました。今回は、図版を作り込んだ結果として膨らんでしまったEPUBのファイルサイズを、どう減らしたかという話です。
KDPの配信コストは「MBで課金」される
Kindle ダイレクト・パブリッシング(KDP)の70%ロイヤリティ帯は、売上の70%がそのまま手取りになるわけではありません。ダウンロードのたびに発生する配信コストが、ファイルサイズ(MB)に比例して差し引かれる仕組みになっています。つまり、図版を丁寧に作り込むほど1冊あたりの手取りが薄くなる、というトレードオフが構造的に存在します。
「本の内容の質」と「配信コストの安さ」は本来別軸のはずですが、電子書籍というフォーマットではこの2つが同じファイルサイズという指標でぶつかります。
肥大の原因は縦長スマホスクショPNG
制作中に一度、EPUBのビルドサイズが約40.9MBまで膨らんだことがありました。原因を調べると、各章の「アプリで確かめる」セクションに載せた縦長のスマホスクリーンショット(PNG形式)が大半を占めていました。
PNGは可逆圧縮のため、スクリーンショットのような複雑な階調を含む画像では、同じ見た目のJPEGに比べてファイルサイズが数倍になります。前回の記事で触れた「文字図版は横長・幅1600px以上」というルールを守っていても、画像形式そのものの選び方までは意識できていなかった、というのが実際のところです。
一括JPEG化スクリプトと参照の書き換え
対応として、本文中の画像28枚を一括でJPEG化するスクリプトを用意しました。処理の流れは次のとおりです。
manuscript/images/配下のPNGを走査- Pillowで開き、
quality=88でJPEGとして再保存 - Markdown原稿内の
を.jpg参照へ一括置換 metadata.yamlのカバー画像パスなど、画像を参照する箇所を再確認
表紙画像だけは文字の縁がシャープに出る必要があるため、PNGのまま残しています。本文図版とカバーで扱いを分けたのがポイントです。
画質の目視検証 — 文字図版は耐えるか
JPEGは非可逆圧縮なので、文字を含む図版で潰れや滲みが出ないかを一枚ずつ目視確認しました。quality=88 を選んだのは、それより低い値(quality=75前後)ではグラフの罫線や小さな文字にわずかなノイズが出始めたためです。品質と容量のバランスを取れる値として、複数の圧縮率を試した末にこの数値に落ち着きました。
写真的な要素を含まない、線と文字だけの図版であっても、JPEG化によって視認性が損なわれないことをKindle Previewer上でも確認してから、最終版として採用しています。
前後比較 — 40.9MB→8.6MBという結果
一括JPEG化とカバー以外のPNG廃止によって、EPUBのファイルサイズは次のように変化しました。
| 項目 | 変更前 | 変更後 |
|---|---|---|
| EPUBサイズ | 約40.9MB | 約8.6MB |
| 削減率 | — | 約79% |
| 配信コスト(概算) | 相対的に高い | 1冊あたり約¥9まで低下 |
約1/5への圧縮です。配信コストが下がったことで、価格戦略(次回以降の連載で扱う予定です)における利益率の計算もシンプルになりました。「図版を諦めずに、容量だけを絞る」という選択ができたのは、リフロー型の設計ルールと画像形式の見直しを分けて考えられたからだと感じています。
まとめ
- KDPの70%ロイヤリティ帯は、ファイルサイズに応じた配信コストが差し引かれるため、図版の作り込みとファイルサイズはトレードオフになる。
- 肥大の主因は、可逆圧縮であるPNG形式の縦長スクリーンショットだった。
- 本文画像28枚を
quality=88でJPEG化するスクリプトを用意し、表紙のみPNGのまま残す方針にした。 - 目視検証で文字図版の視認性を確認したうえで、EPUBサイズを約40.9MBから約8.6MBへ、約79%削減できた。
次回は、Kindle本の価格を3段階で変えた設計について書く予定です。
関連記事
- リフロー型Kindle本の図版設計 — 横長で作る・文字サイズ可変に耐える(GeoConverterPro)
- pandocでMarkdownからEPUBを作る — Kindle本ビルドパイプライン(GeoConverterPro)
- epubcheckエラー0を維持する — EPUB品質管理の自動化(GeoConverterPro)
- 楕円体高・ジオイド高・標高の関係を図で学ぶ(GeoPrism JP)
開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。
お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。
アプリを入手(App Store):GeoConverterPro(座標変換) | GeoPrism JP(測地系の可視化・学習)
コメントを残す