プロが教えるわが家の防犯対策術!

x264でエンコードをしています。
1920x1080の1枚の静止画のみをエンコードしたいのですが、どう設定すればいいのか分かりません。

http://nicowiki.com/%E6%8B%A1%E5%BC%B5%20x264%20 …

私は上記URLのサイトを参考に、x264の設定方法を覚えました。
おそらく半分以上は理解できていると思います。
そして私のx264の設定に関する知識は、9割方このサイトから得たものです。
しかし、やはり動画のエンコーダですので、このサイト含め、x264について説明しているサイトは、どう動くかという場合で分けた説明はあるのですが、全く動かないソースについては説明されている項目がほとんどありません。
そこで質問ですが、静止画をほぼ、できれば全く劣化したようには見えない画質で、かつ圧縮率、デコード負荷のバランスが良い設定を教えてください。

画像や動画を圧縮する仕組みについての知識は全くありません。
フーリエ級数が理解できないレベル、といえば分かりますでしょうか。
もし参考になるサイトがあれば、紹介していただけるとありがたいです。
英語は読めません(読めても理解できません)。

回答よろしくお願いします。

A 回答 (5件)

補足ありがとうございます、自分のエンコ設定はこんな感じ


--crf 27 --ipratio 1.38 --qpmin 22 --qpstep 30 --qcomp 0.95 --rc-lookahead 200 --aq-strength 0.3 --psy-rd 0:0 --no-psy --scenecut 0 --keyint infinite --b-adapt 2 --no-deblock --partitions i8x8,i4x4 --me tesa --subme 11 --merange 32 --ref 12 --weightp 0 --trellis 2

出来上がった動画は解像度1200x720 24fps 再生時間1:30 ビットレート12.8kbps スクリプト未使用 めだつ劣化はなし

ある程度の知識はあるとのことなので大雑把に説明していきます
crf 27 VBRエンコは2passに比べ同ビットレートでの画質がいいです、これは使用する画像によってだいぶ変わるのでご自分で微調整してください
ipratio 1.38 完全な静止画の場合は少し下げた方が画質が上がります
qpmin 22 これもご自身で微調整してください
qpstep 30、qcomp 0.95 静止画なので低い値の方がいいいのでは?と思うかもしれませんが実は高くしておいた方が画質が上がります、なぜなのかはイマイチ理解していません(笑)
rc-lookahead 200 これは上げれば上げるほど画質は良くなりますがPCがクラッシュするかもしれないので、せいぜいこれぐらいにしておいた方が身のためです
aq-strength 0.3 アニメ画像ということなのでこれぐらいが丁度いいと思います
psy-rd 0:0 これを使用するとビットレートを食うので0
scenecut 0、keyint infinite 保存用ということなのでIDRフレームは無しでいいかと
b-adapt 2 完全安定
ここに無いけど最大連続Bフレーム数3 携帯機器への互換性を考えるとこれが限度
no-deblock 使用する画像の画質がいい場合は切った方が画像がもやもやせずにすみます
partitions i8x8,i4x4 p8x8とb8x8p,i4x4は静止画エンコには必要無いので切ります、そうすることにより少しだけ再生負荷がマシになります
me tesa 高画質を目指すならこれがデフォ、その代わりエンコは遅い
subme 11 上げといて損は無いが、ぶっちゃけ静止画の場合少しくらい下げても特に画質の劣化は皆無
merange 32 上げた分だけ画質はあがる、でも上げすぎるとエンコが長くなるのでこれぐらいでおk
ref 12 これも互換性の問題上これが限度 上げすぎると再生できなくなる
direct spatial Autoでもいいけど静止画なのでこれで特に問題はない
weightp 0 これも互換性の問題

超大雑把だったが理解してもらえただろうか、理解できなかったとしても上の設定どおりエンコしてcrfとかを微調整してもらえれば特に問題は無い、
もしこれでも再生負荷がきついというならばCABACあたりを切るといいかもしれない、その分画質は悪くなるが

あとは個人的にこうするとさらに高画質を狙えるよ!というポイント
(1)fpsを極限まで下げる aciutlは1fpsが限界だと思っているかもしれないが実は違ったりする、詳しくは下の参考URL参照
(2)スクリプトを使う 画像が変になるのが嫌だからスクリプトを使わないのだとは思うが、NL-Meansあたりのノイズ除去フィルタくらいは使っておいて損は無いビットレートの節約になります
他におすすめのスクリプト エッジレベル調整ver0.7、nonlinear sharpenとprefilter for nonlinear sharpen、アンシャープマスクMT、WarpSharpMT
説明するのは面倒なのでご自分で調べるなりしてください、アンシャープMTは一押しです、使ってみると画像の質感を壊さず綺麗に見えるので一度お試しあれ
(3)画質関係ないけど音声エンコはQ-Basedがおすすめ、同ビットレートならば他のエンコ設定に比べ音質がいいです

まぁこんな所でしょうか、専門外なのであまり詳しいことは言えませんが・・・あとはご自分でなんとかしてください(笑)

参考URL:http://detail.chiebukuro.yahoo.co.jp/qa/question …
    • good
    • 0
この回答へのお礼

再びの回答ありがとうございます。

まず画像の解像度が1920x1080ですので、ref 3が限度ですね。
PS3で再生したいので、Highプロファイルの場合、レベルは4.2以下に抑えなければいけません。
crfは画質重視なら19、ビットレートが大きくなりすぎる時は21くらいにしていました。
アニメの場合、qcompは80くらい、qpstepは20くらいにしていましたが、もっと大きくした方がよかったのですね。
rc-lookaheadはいつもデフォルトの60でしたので、200と聞くと随分高いように感じます。
そういえば私がいつも参考にしていたサイトには、これの説明がありませんね。
weightpは以前ニコニコ動画に動画をアップロードしていたとき、随分と悩まされました。
バージョンの古いフラッシュプレイヤーだと画面の一部が乱れます。
しかし、PCやPS3でおかしくなったことはないので、これは使うことにします。
partitionsは、8x8dctを使わないのでしょうか。
先にも記しました、私がいつも参考にしているサイトに以下のような記述があります。

「8x8 離散コサイン変換を使用するとHigh Profileになる。p4x4はp8x8をつけないと効かない。i8x8は8x8dctが無ければ効かない。」

つまりi8x8とi4x4だけというのは無理なのではないでしょうか。


アップコンバートする時は、フィルタも結構使います。
エッジレベル調整ver0.7、アンシャープマスクMT、WarpSharpMTは、とてもよくお世話になったフィルタですね。
解像度を変えない場合は、オリジナルを大切にしたいので、UVダウンサンプリングくらいしかかけていません。


目から鱗な情報が満載な回答で、ワクワクしました。
できればperonyann様がx264の使い方について参考にしているサイトなどがあれば、教えていただきたいです。

お礼日時:2012/07/11 21:48

説明がにわか丸出しで本当にすみませんでした


参考にしているサイトは

(1)魔道学研究所 http://es2z.blog98.fc2.com/
エンコード設定全般 ニコニコwikiと合わせて見てた

(2)猫科研究所 http://up-cat.net/
高画質を目指すのには欠かせないx264のログの読み方でお世話になってます
英語が読めたら原文の方を読むんですけどねぇ・・・

(4)AviUtl愛好会 http://com.nicovideo.jp/community/co556462?mypag …
ニコニコのコミュニティ 分からないことはここの掲示板に書くといいかもしれない
コミュに登録されている動画はそれなりのレベルのものが多いので見ておくといいかも

(3)ニコニコ動画まとめwiki http://nicowiki.com/
定番中の定番、たぶん一番お世話になった

こんくらいですかね、正直なところ自分でエンコしまくって確認するのが一番早くて楽だったりするんですけどね
    • good
    • 0
この回答へのお礼

AviUtl愛好会は、私も参加しています。
一度ここで質問して返答がなかったので、以降あまり使っていませんが・・・

これから紹介していただいたサイトを参考にして、勉強しようと思います。
3度も回答ありがとうございました。

お礼日時:2012/07/12 17:42

ふむ、x264で静止画エンコードですか


(1)どのサイトに投稿するのか
(2)フレームレートは23.976fpsじゃないといけないのか
(3)画像は実写かアニメか
(4)背景(画像)を動かすのか
(5)スクリプトの使用は可能か
この5つの詳細を教えてもらえれば、それなりにお力になれると思います

ちなみに自分はニコ動くらいにしか投稿したことがないので
youtubeなどのサイトの場合は的確なアドバイスができないかもしれません
申し訳ないです
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

(1)どのサイトに投稿するのか
→保存用です。

(2)フレームレートは23.976fpsじゃないといけないのか
→はい。

(3)画像は実写かアニメか
→ほぼ真っ白の画像にアニメのキャラが描いてある画像ですので、実写と比べればディテールに欠けます。

(4)背景(画像)を動かすのか
→使う画像は1枚のみです。

(5)スクリプトの使用は可能か
→不可能です。

更に条件を出せば、H.264の形式で圧縮することが必須となります。
エンコーダはx264でなくとも構いません。
静止映像用に最適化されたH.264エンコーダなどが、フリーソフトであれば教えていただきたいです。

お礼日時:2012/07/11 19:23

面白そうなのでやってみました



1フレームだけにして

aviutilで拡張x264出力の設定でシングルバス固定ビットレートで画質は最高にしてエンコードしました

1920x1080で5.93MbyteのBMPが1.88MbyteのMP4になりました

設定をいろいろ変えて試してみるといいかもしれません

この回答への補足

お礼の4行目、「cqm=0」
とありますが、「crf=0」
の誤りでした。
失礼致しました。

補足日時:2012/07/10 21:24
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

質問の仕方が悪かったようですね。
詳しくは1番目の回答へのお礼を見て頂ければ分かると思います。
あと、圧縮率、デコード負荷のバランスはどこにいったのでしょうか。
データ的に劣化させたくないならcqm=0で可逆圧縮すればいいだけですよね。
劣化させたくないのはあくまで「視覚的に」だけでいいです。

お礼日時:2012/07/10 20:40

まず最初に何がしたいの???


ただ延々と何も動かない動画作成したいという事ですか
静止画を生成する事は出来ませんけど
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

表現が難しいのですが、静止映像とでもいいましょうか。
フレームはあります。
およそ1分半で24000/1001(≒23.976)fpsの動画ですが、使うのは一枚の画像のみということです。
方法は、AviUtlを使い画像を23.976fpsで読み込み、フレームをコピーして増やし、エンコードした後音声とmuxします。

そのエンコードの設定がわからないという質問でした。

お礼日時:2012/07/10 20:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!