Webpの向き不向き

Webpの向き不向き

WebpにはLosslessとLossyの2つのオプションがある。常識的に考えて、Losslessはファイル容量がデカくなりがちで、ファイル容量を小さくしたければLossyを使えばいいと思うが、意外とそんなことないので、用途を考えて使い分けましょうという話。

ウェブ用の画像形式 | WebP | Google for Developers
ウェブ用により小さい画像を作成するこの画像形式の詳細や、G4 Converter のダウンロードやサポートのためのリンクを確認できます。

最近、ScanSnapのix1300で本をスキャンするようになった。白黒の最高解像度でスキャンをする場合、PDFで画像が出力される。PDFよりも汎用的な画像ファイルのほうが都合がいいので、pdfimagesで画像を抜き出している。

PDFから画像をTiffで抜き出す

PDFが一個だけ

$base = (Get-Item *.pdf).BaseName; pdfimages -tiff *.pdf temp; Get-ChildItem temp-*.tif | ForEach-Object { Rename-Item $_ ($_.Name -replace '^temp-',"$base-") }

複数PDF

Get-ChildItem *.pdf | ForEach-Object { $base = $_.BaseName; pdfimages -tiff $_.Name temp; Get-ChildItem temp-*.tif | ForEach-Object { Rename-Item $_ "$base-$($_.Name -replace 'temp-','')" } }

Lossy Webpに変換

そのまま出力してもあまり使いやすくないので、TIFFに出力し、それをcweb.exeでWebpに変換している。

Get-ChildItem *.tif | ForEach-Object { cwebp -q 82 -m 6 -af -mt "$_" -o "$($_.BaseName).webp"; if($LASTEXITCODE -eq 0) { Remove-Item $_ } }

深く考えずに、Lossy Webpに変換していたのだが、なんとTIFFファイルよりもファイル容量が大きくなったので、びっくり。

Lossless Webpに変換

ダメ元でLossless Webpに変換したら非常に小さなファイル容量になった。

Get-ChildItem *.tif | ForEach-Object { cwebp -lossless -z 9 "$_" -o "$($_.BaseName).webp"; if($LASTEXITCODE -eq 0) { Remove-Item $_ } }

Losslessの方が小さい?なんで?

Lossless WebPは、PNGと同様に画像の冗長性やパターンを利用して圧縮しする。つまり、単純な画像(白黒スキャン、図表、ロゴ、アイコンなど)では圧縮率が非常に高くなる。色の繰り返し、エッジの鮮明さ、パターンが多いほど効率的。

Lossy WebPは、写真のような複雑な画像向けに設計されていて、複雑なグラデーションや自然な質感を効率的に圧縮する。単純な画像だと、そのアルゴリズムが逆に非効率になることも

白黒スキャン画像は色数が少なく繰り返しパターンが多いので、Losslessが大活躍するわけ。

逆に、カラースキャンのように、輪郭に中間色が入ってくるようになると、効率はガクッと下がる。

📄
スキャン文書・図表・ロゴ → Lossless
  • 文字がぼやけない
  • ファイルサイズも小さい
🖼️
写真・複雑なグラフィック → Lossy
  • 圧縮率が高い
  • 視覚的な劣化が少ない

じゃあ何を使えばいいのよ?

基本的にはLossy Webpを使っていればいい。白黒スキャンしたドキュメントなど、TIFFやPNGでも小さい画像はLossless Webpを検討してもいいかなという感じ。

Read more

ストロボの出力表記

ストロボの出力表記には、主に分数表記と数値表記の2種類がある。それぞれの仕組みと、実際の撮影での使い勝手の違いを整理する。 分数表記 出力をフルパワーに対する比率で表す方式。1/1がフルパワーで、以降1/2、1/4、1/8と続く。 1/1 → 1/2 → 1/4 → 1/8 → 1/16 → 1/32 → 1/64 → 1/128 隣り合うステップ間が1段(1 stop)に対応し、光量がちょうど半分になる。中間値は機種によって1/3段刻みや1/10段刻みで調整できる(例: 1/16+0.3、1/16+0.7)。 分数がそのまま最大出力に対する割合を示すため、「今フルパワーの何分の1で発光しているか」が一目でわかる。

By Sakashita Yasunobu

ナウいパスワード要件

2025年8月、米国国立標準技術研究所(NIST)は認証ガイドライン SP 800-63B Revision 4 を正式公開した。このガイドラインは米国連邦政府機関向けの技術要件だが、世界中のWebサービスやセキュリティ基準に広く影響を与えている。日本でも総務省やIPAがこのガイドラインを参照しており、一般ユーザーにとっても「正しいパスワードの作り方」を知る上で最も信頼性の高い情報源といえる。 本記事では、NIST SP 800-63B-4の原文に基づき、パスワードに関する要件を整理する。各セクション末尾の緑・黄色のボックスは、そこから導かれる一般ユーザー向けの実践ポイントである。 出典 本記事の内容は、以下の公式資料に基づく。 * NIST SP 800-63B-4(2025年8月1日発効、本記事参照版: 2025年8月26日更新): Digital Identity Guidelines: Authentication and Lifecycle Management * 総務省「国民のためのサイバーセキュリティサイト」: 安全なパスワードの設定・管理 * IPA

By Sakashita Yasunobu

おそらく人生でもっとも暇な時を過ごす君たちへ

大学受験を終えた高校生。就活を早々と終えた大学生。 何年ものあいだ、勉強や準備に打ち込んできたのだろう。結果がどうであったにせよ、まずはお疲れ様だ。 これから過ごす時間は、おそらく君たちにとって素晴らしい、かけがえのない時間になる。もちろん、そうなるように日々を過ごしていくのは君たち自身だけれど、それでも「やっぱり違った」というなら、そのときは一言文句を言ってくれて構わない。 まだ後期の試験を控えている人、来年に向けてもう一年頑張らなければいけない人もいるだろう。心から応援している。 たぶん人生の前半で、今がもっとも暇で、もっとも目的がなく、もっとも圧力がない。あらゆる意味でもっとも解放された自由な時間だ。人生全体を見渡しても、こうした時間はそう何度も訪れるものではない。 で、大事なのは、この時間をどう使うかだ。 おすすめは美術館に行くことである 唐突だと思う。 普段から美術館に足を運ぶ趣味をお持ちの方には、釈迦に説法だろう。そういう方にはぜひ、お気に入りの過ごし方を教えていただけると嬉しい。 さて、美術と聞くと、なんだか遠い世界のように感じないだろうか。 現代ア

By Sakashita Yasunobu

NLLB-200をLoRAで日英翻訳に特化させた話

はじめに 言語処理100本ノック 2025 (Rev 1)は、東北大学の乾・鈴木研究室が公開している自然言語処理(NLP)の演習問題集である。UNIXコマンドによるテキスト処理、正規表現、形態素解析、単語ベクトル、ニューラル機械翻訳など、全100問を通じてNLPの基礎から応用までを体系的に学ぶことができる。 言語処理100本ノック言語処理100本ノックは、実用的でワクワクするような課題に取り組みながら、自然言語処理、大規模言語モデル、プログラミング、研究のスキルを楽しく習得することを目指した問題集です。言語処理100本ノック 2025 本記事では、第10章の課題であるニューラル機械翻訳モデルの構築について、実装の詳細と得られた知見を記録する。 💡事前学習済み翻訳モデル NLLB-200 に LoRA(Low-Rank Adaptation)を適用し、KFTTデータでファインチューニング。Google Colab(A100 GPU)で約3.5時間の学習により、テストデータで BLEU 22.09 を達成した。 課題「自分だけの翻訳エンジンを作る」 KFTTデータセット

By Sakashita Yasunobu