x265 rev3©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
>>756
無知で申し訳無いのですがレートコントロールとはどのような物なのでしょうか? >>760
最大ビットレートとかバッファサイズとかが規格から逸脱しないようにすること 質問者
「今のx264やx265だと2Kや4Kエンコでも新しい多コアCPU(16C/32T等)を
100%使い切れないんだけど、なんとかならない?」
RipBot264作者
「RipBot264を使えば1つ(または複数)のマシンで分散エンコーディングできるから
100%使い切れるぜ!」
x265開発陣
「RipBot264ってオープンソースになってないよね?
x264やx265を呼び出してるんだからGPLv2に従ってソース公開しないと駄目だよ?」
RipBot264作者
「(゚Д゚ )ヤベッ!(寄付を募ったりもしてるや・・・)」
x265 HEVC Encoder
https://forum.doom9.org/showthread.php?p=1811649#post1811649
RipBot264って古くからあるみたいだけど初めて知った。分散エンコード機能なんてあるんだね。
x264だとmuken氏が
「規格に準じて結合するなら--stitchableをつけたり諸々注意が必要」
みたいなツイートをしてたけど、RipBot264はそのへん考慮して結合してるんだろうか。
あとx265でバラバラにエンコして結合する時の注意って何かあるんだろうか? zonesで指定すればいいみたいだね
>>762
どっちかというと俺が気にしてるのはバッファアンダーフローとかじゃなくて、
何も考えずにやると60pの部分に24pの60/24=2.5倍のビットレートが割り当てられちゃうこと
CBRにするわけじゃないからきっかり2.5倍ってわけじゃないだろうけど
x265はフレームレートが違うって分からないからちゃんとビットレート計算できないだろうし >>759
同じフレーム重複して入れたら、ちゃんとそれを認識して特別な処理してくれればいいんだけど、
現状のx265はそんなに賢くないっぽくて、エンコ時間長くなるし、圧縮後のデータ量も増えるんだよね
>>760
http://slhck.info/video/2017/03/01/rate-control.html
> What is “rate control”? It’s what a video encoder does when it decides how many bits to spend for a given frame.
与えられたフレームにどれだけのビットを割り当てるか決めること
1パスとか2パスとか、CBRとかVBRとか、CFRとか
エンコでは基本的なことだよ それにしてもレートコントロールが何かを知らないとは
細かいオプションがどうこう言ってるけど、基本がなってないな
1パスとか2パスとか、何か知らないで使ってたのか >>766
>>760は初心者が単純に質問しただけで、細かいオプションとかに言及してた形跡はないような。 >>760-762
ここらへんの方たちは初心者だったか。それはすまぬ。勘違いだ >>768
俺も言葉の厳密な定義を正しく理解してるか自信はあまりないけど、
>>762が書いてる内容はレート制御の範疇に入るだろうから外していいんじゃないか。 >>763
x264やx265のexeを起動してるだけなら、GPLを要求するのは難しいよ
ライブラリバージョン使ってるならGPLにしないとダメだけど
GPL原理主義みたいな人たちは宗教的なとこあるから、GPLを要求したいのは分かるけど 2.5のリリースノートに
1. Improved grain handling with --tune grain option by throttling VBV operations to limit QP jumps.
とあったので2.4+2と2.5+3(ともにrigaya氏ビルド)で比較してみたら、
ビットレートもSSIMも完全一致するという結果になったんだけど、なんでだろう?
MediaInfoで見る限り、
https://bitbucket.org/multicoreware/x265/commits/bce945545c241ce4bb87d56d283ac8226d862ed5
にある --const-vbv は有効にされてる模様。
SSIM/ビットレート図 → http://2sen.dip.jp/cgi-bin/upgun/up2/source/up3430.jpg ベンチマークスレに、環境情報を自動取得してx264/x265ベンチマークを行うバッチを
投下してみましたので、検証協力して下さる方がおられましたら、よろしくお願いいたします。
http://egg.2ch.net/test/read.cgi/jisaku/1460032466/796-797 >>774
よくわかってないのだけど、単に --tune grain を指定しただけでは駄目なのかな? >>763
これって分散エンコでググっても全く出てこないのな
x265にも対応してるみたいで最近も更新してる様だけど、分散エンコに関するブログ紹介は2012以降ぱたりと無くなる
日本語化で機能しなくなる?のが原因なんだろうか http://pc.watch.impress.co.jp/docs/column/kaigai/1073276.html
>Vegaアーキテクチャでは、パックドの8-bit整数演算もサポートされた。
>しかし、8-bit整数演算は、SAD(Sum of Absolute Difference:差の絶対値和)
>演算のみサポートとなっている。動画などイメージ処理向けであり、
>マシンラーニング向けの実装ではない。
x265のエンコに使えると良いな おすすめのオプションある?
ソースは解像度が720x480のアニメTS デフォでOK。エンコ設定より前処理の方が何倍も重要 しばらく実写ソースに対してaq-mode3の0..4でやってみたけど
やっぱaq-mode1 aq-strength 1.2のほうが良かった
素行自体は良さそうだったんだけどな>aq-mode3 aq-mode 1がオールマイティなのかな
アニメを10bitエンコードするとcrf 20〜22でも暗部の輪郭(エッジ)が汚れやすくて少し気になる
なんとかできないものか エッジを保護したいならaq使わなければいい
当然のっぺりした部分がその分劣化するわけだが >>781
aq-mode3のaq-strength 0.4ぐらいでやればいいじゃ? strength値0.4くらいだとaq3使う利点あまりないからaq on/offどっちでも良いと思うよ そうでもなかった気がする
実写には不向きだったけど 新しいオプション --refine-intra と --refine-inter が追加されたらしいから試してみたけど
Analyze level 10が必要って言われた
これって2passのみってこと? >>787
rigaya氏のx2.5+8 x64で試してみたけど、2パス目に入ってすぐにクラッシュしてしまい、うまく動かなかった。
そもそもこの指定方法であってるのかよくわからんけど・・・。
%avs2pipemod% -y4mp "%~1" | %x265% --y4m - --preset medium --bitrate 1000 --no-cutree --analysis-reuse-mode save --analysis-reuse-level 10 -o test.mp4
%avs2pipemod% -y4mp "%~1" | %x265% --y4m - --preset medium --bitrate 1000 --no-cutree --analysis-reuse-mode load --analysis-reuse-level 10 --scale-factor 2 --refine-intra 1 --refine-inter 1 -o test.mp4 >>788
解析ファイルを指定するオプションがあったはず >>789
--analysis-reuse-fileのことだと思うけど、指定しなければx265_analysis.datになるし、指定しても駄目だった。 >>791 を適当にビルドだけしてエンコしてみたけど別に速くなるとかなんもなかったな。
各ソースのコメントに openacc と付いてる部分で GPU 使ってるんだとは思うが。 オリジナルのx265もopenaccが入って来てる
openacc有効にしてビルドすれば、それなりに高速化するらしい >>788-790がそのままだったので、あらためてreuse,refine系を試した結果を連投。
■--analysis-reuse-levelのテスト1(640x360@24、1092frames)
●オプション
・--preset slower --pass 1 --bitrate 500 --no-cutree --analysis-reuse-mode save --analysis-reuse-level %reuseLevel%
・--preset slower --pass 2 --bitrate 500 --no-cutree --analysis-reuse-mode load --analysis-reuse-level %reuseLevel%
●1pass目の結果は省略(8.81〜9.03fps)
●reuse無し
125.05s (8.73 fps), 499.16 kb/s, Avg QP:20.38
●reuseLevel=1、reuseファイルのサイズ:123KB
125.87s (8.68 fps), 499.35 kb/s, Avg QP:20.40
●reuseLevel=2、reuseファイルのサイズ:569MB
112.51s (9.71 fps), 498.51 kb/s, Avg QP:20.47
●reuseLevel=5、reuseファイルのサイズ:571MB
109.80s (9.95 fps), 498.51 kb/s, Avg QP:20.46
●reuseLevel=10、reuseファイルのサイズ:28.9MB
4.29s (254.72 fps), 493.20 kb/s, Avg QP:20.52 ■--analysis-reuse-levelのテスト2(1920x1080@23.976、2157frames)
●オプション
・テスト1と同様。ビットレート指定のみ9000に。
●1pass目の結果は省略(0.81〜0.87fps)
●reuseLevel=1、reuseファイルのサイズ:234KB
2449.91s (0.88 fps), 8953.61 kb/s, Avg QP:18.21
●reuseLevel=2、reuseファイルのサイズ:8.81GB
2177.31s (0.99 fps), 8953.84 kb/s, Avg QP:18.24
●reuseLevel=5、reuseファイルのサイズ:8.85GB
2182.34s (0.99 fps), 8953.38 kb/s, Avg QP:18.23
●reuseLevel=10、reuseファイルのサイズ:595MB
89.42s (24.12 fps), 8921.43 kb/s, Avg QP:18.44 ■--refine-intra、--refine-interのテスト(640x360@24,1092frames)
●オプション
・--preset slower --pass 1 --bitrate 500 --no-cutree --analysis-reuse-mode save --analysis-reuse-level 10 --ctu %maxCU1% --min-cu-size %minCU1%
・--preset slower --pass 2 --bitrate 500 --no-cutree --analysis-reuse-mode load --analysis-reuse-level 10 --ctu %maxCU2% --min-cu-size %minCU2% --refine-intra %refine% --refine-inter %refine% --scale-factor 2
●--scale-factorの説明を元に--ctuと--min-cu-sizeを指定。いくつかのソースで試した限りでは
以下の4パターンの組み合わせのみ2pass目がクラッシュせずに動いた。
表記は「CTU-%maxCU1%-%minCU1%-%maxCU2%-%minCU2%」
●CTU-32-32-64-32
p1:29.30s (37.27 fps), 418.33 kb/s, Avg QP:22.78、reuseファイルのサイズ:20.7MB
p2(refine=1):25.05s (43.60 fps), 540.76 kb/s, Avg QP:29.83
p2(refine=2):19.11s (57.16 fps), 506.54 kb/s, Avg QP:24.69
p2(refine=3):40.76s (26.79 fps), 507.85 kb/s, Avg QP:24.13 ●CTU-32-16-64-32
p1:49.65s (21.99 fps), 483.44 kb/s, Avg QP:21.72、reuseファイルのサイズ:26.3MB
p2(refine=1):26.14s (41.78 fps), 521.65 kb/s, Avg QP:28.72
p2(refine=2):19.01s (57.45 fps), 505.24 kb/s, Avg QP:23.90
p2(refine=3):45.51s (24.00 fps), 506.25 kb/s, Avg QP:23.32
●CTU-16-16-32-16
p1:32.75s (33.34 fps), 482.39 kb/s, Avg QP:22.39、reuseファイルのサイズ:31.7MB
p2(refine=1):28.34s (38.53 fps), 527.16 kb/s, Avg QP:28.71
p2(refine=2):17.68s (61.78 fps), 507.18 kb/s, Avg QP:23.36
p2(refine=3):51.62s (21.16 fps), 509.31 kb/s, Avg QP:22.73
●CTU-16-8-32-16
p1:81.67s (13.37 fps), 486.43 kb/s, Avg QP:22.25、reuseファイルのサイズ:40.2MB
p2(refine=1):30.03s (36.36 fps), 524.99 kb/s, Avg QP:27.88
p2(refine=2):18.08s (60.41 fps), 509.86 kb/s, Avg QP:23.36
p2(refine=3):52.24s (20.91 fps), 510.78 kb/s, Avg QP:22.68 ■参考
1920x1080、2157framesでCTUサイズを指定した場合のreuseファイルのサイズ(ログ取り忘れ)
CTU-32-32-64-32→357MB、CTU-16-8-32-16→760MB
■コメント
1.reuse-levelの5がrectとampの情報を保存するようなので両者が有効になるslowerを使用。
2.reuse-levelの2と5はreuseファイルのサイズが極端にでかくなるが、
より多くの情報を保存するはずの10はなぜか比較的サイズが小さかった。(それでもでかいけど)
3.CTUサイズの指定については「2pass目がクラッシュしない組み合わせ」を総当たりで探しただけ。
4.x265guiEx v3.79で reuse、refine系の設定欄が追加されたが、
--scale-factor と --min-cu-size の設定欄が無いので、これらは追加コマンド欄で指定する必要がある。
また --refine-mv の設定欄も無い模様。
■最後に
--analysis-reuse系のオプションの使いどころやメリットがよくわからないと思って
調べていたら、x265開発陣が以下のようなコメントをしていた。
https://forum.doom9.org/showthread.php?p=1810782#post1810782
概要
> ライバルもいるから詳細はあまり説明したくないんだけど、基本的には
> (UHDkitで)ライブエンコード時の速度アップや、オフラインエンコード時の
> 計算効率アップのソリューションを提供するための仕組み。
> x265を単体で使っている人には特にメリットもないし、高品質になるわけでもない。
なお上のコメントはreuse系オプションのことなので、refine系についてはまた別。
refine系の効果までは検証していないので、オプションの説明以上のことは不明。 qpmin=0はコマンドもない気がするけど何か入れないとでてこないタイプですか? >>804
x265.exe --help
> Use --log-level full --help for a full listing ■ このスレッドは過去ログ倉庫に格納されています