ffmpegならこちらへ 7 (994レス)
上下前次1-新
88: 2023/01/03(火)08:48 ID:Ttl3j4JF0(2/2) AAS
外部リンク:www.jstage.jst.go.jp
このPDF見ながらソース読んでみたけど、処理自体は正しく書かれてるように思える
あとはこれを使ってる場所が正しくLとVを使ってるかどうかじゃないかなあ
Lを使うべきところでVを使ってるとか、その逆とか
89(1): 2023/01/05(木)00:25 ID:7mKKIxKi0(1/8) AAS
返信ありがとうございます。私もそのPDFを読んでみました。
>このPDF見ながらソース読んでみたけど、処理自体は正しく書かれてるように思える
>あとはこれを使ってる場所が正しくLとVを使ってるかどうかじゃないかなあ
>Lを使うべきところでVを使ってるとか、その逆とか
はい、そう思います。
同じソースコードの330行目を見ると、OETFの引数にVを、EOTFの引数にLを入力していませんか。
もしそうなら、LとVを逆に扱っていないでしょうか?
90(2): 2023/01/05(木)00:46 ID:7mKKIxKi0(2/8) AAS
>>89は予想です。
func.to_linearやfunc.to_gammaって書いてあるのを見て思っただけで、全体の処理の流れを理解していません。
>>87のプログラムの説明助かりました!
91: 2023/01/05(木)10:37 ID:QEuK8P+m0(1) AAS
>>90
330付近は300から始まるブロックだけど、select_transfer_functionって名前の通りでその処理(リニア化、ガンマ化)をするためにどの計算方法を使うかを選んでいる
リニア化はシーン参照(入力参照)なら上カーブになる240m_inverse、そうじゃない(出力参照)なら下カーブになるRec.1886eotfで正解じゃない?
勘違いしてるかな
いや、出力参照でRec.1886を使ってるのが正しいのかと言われると断言できないけど
92(1): 2023/01/05(木)20:49 ID:7mKKIxKi0(3/8) AAS
リニア化は人間の視覚特性に合わせて暗部の圧縮をするので下カーブになると思います。
ただ、どうして出力参照でRec.1886 EOTFを適用するんでしょう。
PDFの記述と食い違いがあります。(今気づきましたが、1991年の記事なんですね)
Rec.1886はCRTの模倣なので、再生時の逆ガンマ補正がもしCRTだけ(パススルー)だったら理にかなっています。
ネットで調べてもよくわからないです。
とりあえずいまは式をMarkdownへ書き起こす作業をしています。
93(1): 2023/01/05(木)22:32 ID:7mKKIxKi0(4/8) AAS
外部リンク:www.desmos.com
smpte_240m_inverse_oetfとrec_1886_eotfをプロットしてみました。
外部リンク:imgur.com
この画像のようにシーン参照のTFと出力参照のTFを組み合わせるのが一般的?なんですかね。
zscaleのRec.709の実装が正しいとすると
シーン参照のTFと出力参照のTFはsmpte_240m_inverse_oetfとrec_1886_eotfだと思います。
うーん。
94: 2023/01/05(木)22:39 ID:7mKKIxKi0(5/8) AAS
書き起こした式です。
外部リンク:hackmd.io
95: 2023/01/05(木)23:36 ID:7mKKIxKi0(6/8) AAS
こちらの画像がより正確かもしれません。
外部リンク:imgur.com
Scene-referredについて追記した版です。
外部リンク:hackmd.io
Rec.709も加えました
外部リンク:www.geogebra.org
96(1): 2023/01/05(木)23:49 ID:7mKKIxKi0(7/8) AAS
BT470_MとREC_470_BGとLOG_100とLOG_316の式がH.273と違いますね
97: 2023/01/05(木)23:59 ID:7mKKIxKi0(8/8) AAS
すみません>>96解決しました。
BT470_MとREC_470_BGは、OETFとinverse OETF、func.to_linearとfunc.to_gammaがそれぞれ逆ですが、結果的に処理は正しく
LOG_100とLOG_316は、式の区間が調整されてますが、計算結果は変わらないようです。
98(1): 2023/01/08(日)17:49 ID:dgAHe8aX0(1/5) AAS
FFmpegのzscaleでST240に変換しようとしましたがエラーが出て処理が進みません
コマンドです。
ffmpeg -y -i testimage.jpg -filter_complex "zscale=rangein=full:primariesin=709:transferin=709:matrixin=470bg:range=full:primaries=709:transfer=7:matrix=470bg" -f image2 -qmin 1 -q 1 -update 1 240m.jpg
7がST240のはずですが…
外部リンク:hackmd.io
99: 2023/01/08(日)17:51 ID:dgAHe8aX0(2/5) AAS
テストで使った画像です。
外部リンク:imgur.com
100: 2023/01/08(日)22:59 ID:dgAHe8aX0(3/5) AAS
smpte240mをFFmpegのzscaleでテストするという目的はまだ達成できていませんが、試行錯誤の結果を報告します。
>>98でFFmpeg5.1を使っていました。
FFmpeg5.1とmasterの間で、FFmpeg/libavfilter/vf_zscale.cが変更されているようです。
コミットメッセージによると、smpte240m transferオプションの追加を含む変更とのことなので、2023年1月4日の最新ビルドで同じコマンドを試してみました。
しかし、>>98と同じ結果、つまりFFmpeg5.1と同じエラーが発生しました。
以下はそのエラーの出力です。
101: 2023/01/08(日)23:02 ID:dgAHe8aX0(4/5) AAS
ffmpeg version 2023-01-04-git-4a80db5fc2-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.1.0 (Rev2, Built by MSYS2 project)
(文字数制限のためconfigurationを中略)
libavutil 57. 43.100 / 57. 43.100
libavcodec 59. 56.100 / 59. 56.100
libavformat 59. 34.102 / 59. 34.102
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 53.100 / 8. 53.100
libswscale 6. 8.112 / 6. 8.112
libswresample 4. 9.100 / 4. 9.100
省11
102: 2023/01/08(日)23:09 ID:dgAHe8aX0(5/5) AAS
zscaleが対応していない伝達特性reserved、bt1361、smpte428とは異なり、FFmpegは数秒間停止した後に終了するような動作をします。
709 1
bt709 1
bt470m 4
bt470bg 5
smpte170m 6
601 6
linear 8
linear 8
log100 9
省10
103: 2023/01/13(金)22:40 ID:TRrhIozd0(1) AAS
書けた!
104: 2023/01/14(土)19:01 ID:hBwrxSa70(1) AAS
規制解除願う
105: 2023/01/18(水)20:05 ID:imvRxbLL0(1) AAS
規制された?
106: 2023/01/21(土)18:03 ID:ctgFreAT0(1) AAS
あなたはこのスレッドにはもう書けません。
107: 2023/01/22(日)12:25 ID:A/H5B6HI0(1) AAS
マジか
上下前次1-新書関写板覧索設栞歴
あと 887 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.375s*