5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

映像可逆圧縮総合スレ Part3

1 :名無しさん@編集中:2009/07/10(金) 23:30:30 ID:fN2fpFAc
映像可逆圧縮関連総合スレです

Part2 http://pc11.2ch.net/test/read.cgi/avi/1205486331/
Part1 http://pc11.2ch.net/test/read.cgi/avi/1098022448/
祖先スレ http://pc5.2ch.net/test/read.cgi/avi/1056587462/

810 :名無しさん@編集中:2014/10/23(木) 03:15:02.03 ID:/yr93t6L
Windows8.1を使っている方に伺いたいのですが、レジストリエディタ(regedit)で
 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32
を見た場合、「vidc.yv12」という名前のエントリは存在しているでしょうか?
また、存在している場合、データはどのようになっているでしょうか?

MikuMikuDance v9.24で背景AVIを読み込む場合に、
  ・UtVideo14.2.1のULY0/ULH0だと真っ黒になってしまう
  ・Lagarith1.3.27のYV12も、Lagarithの設定で「Always Suggest RGB for Output」に
   チェックを入れておかないと真っ黒になってしまう。
  ・Xvid 1.3.3だと「AVIファイルを読み込めません」のエラーが出て読み込めない
という状況が発生しており、vidc.yv12の有無や値が関係しているのではないかと推測しています。
現状のうちの環境ではvidc.yv12は存在していないのですが、これまでに何度か各種コーデックの
導入・削除を繰り返してきましたので、デフォルトの状態を知りたいと思った次第です。

811 :名無しさん@編集中:2014/10/24(金) 02:48:34.59 ID:ezx2CJak
>>810
うちの環境にはyv12のエントリはないね
もしかしたらffdshow video decoderのコーデック設定で、raw videoの項目でYV12がサポートされる状態になってるとか?

812 :名無しさん@編集中:2014/10/24(金) 03:04:29.31 ID:ezx2CJak
raw videoフィルタは関係なさそうだったけど、
aviutlでYV12のファイルを読み込もうとしたらエラーになったんで、
8.1ではもう削除された機能ってことなのかな?

代わりにffdshow Video Decoderのコーデック設定のraw videoにYV12の
サポートを設定したら開けるようになったよ

813 :名無しさん@編集中:2014/10/24(金) 03:13:16.72 ID:ezx2CJak
aviutlはdirectshowソースプラグインがあるから開けるようになったけど、
ffdshowの設定してもMMDでは読めなかったね

814 :名無しさん@編集中:2014/10/24(金) 21:36:49.13 ID:iwkwQurY
>>811-813
ありがとうございます。やっぱりvidc.yv12はWin8.1ではデフォルトでは存在しないのですかね。
MMDの背景AVI読み込みはVFWのようなので、ffdshow rev4533を入れて、VFWの設定で
Raw videoを「全サポート形式」にしてみましたが、MMDでULY0が読めない状況は変わりませんでした。

これまでの流れをまとめて下さった方がいるので貼っておきます。

  一部のYUVなaviを、MikuMikuDanceが背景AVIとして正常に読み込めない問題
  ttp://togetter.com/li/736317

vidc.yv12に注目したのは、
  FAQ YV12 - Avisynth wiki
     ttp://avisynth.nl/index.php/FAQ_YV12
  VirtualDubModでYV12なavsファイルが読み込めない
     ttp://freesoft.tvbok.com/movie_encode/virtualdubmod/yv12avs.html
の記事を読んだからでした。記事にしたがってXvid1.3.3の入れ直しもしてみましたが駄目でした。
XP機を使っていた頃は確かDivX YV12 DecoderというのがVFWコーデックに入っていたような気がするのですが、
DivX10.2以降はDivXコーデックは外されてしまったので、古いのを探してきて入れないと駄目なようです。

しかしながら、vidc.yv12が無くてもULY0/ULH0が読み込めている人がいるので、
そこが本質というわけではなさそうです。なんだかややこしい。

815 :名無しさん@編集中:2014/10/24(金) 22:05:38.08 ID:iwkwQurY
とりあえず今までにやってみたことの流れを書いてみます。

1.MMD v9.24の背景AVI読み込みで、ULH2が真っ黒になり正常に読めないことに気づく。ULY2は読める。
  さらにULY0/ULH0を試してみたところ、この両者とも真っ黒になってしまうことが判明。
  MPC-HCでの再生やAviUtlへの読み込みなどは問題なく、MMDだけが駄目。
2.背景AVI読み込みでMMDが強制終了することもあったのでイベントビューアを見てみると、
  DxtoryCodec.dllで障害が発生していた。やむをえずDxtoryをアンインストール。(入れていたのはDxtory 2.0.128か126。)
3.MMDの強制終了は無くなったが、ULY0が読めないことに変わりなし。
4.UtVideo14.2.1をアンインストールして12.0を入れてみたがULY0が読めないことに変わりなし。14.2.1に戻す。
5.ふと気づいて、一時的にアンインストールしていたBlackmagicDesignのDesktopVideo10.2.2を
  再インストールしてみたところ、ULH2は正常に読みこめるようになった。
  HDYCのコーデック(Blackmagic HD 8 bit 4:2:2 Codec)が入ったことが影響しているのだろうか?
6.>>814のYV12系の記事を見て、Xvid 1.3.3を再インストールしてみたり、
  ffdshow rev4533を入れてVFWでRawVideoのYV12を有効にしてみたりしたが効果無し。
7.レジストリエディタで手動でvidc.yv12を作り、msyuv.dllやxvidvfw.dllを指定してみたが効果無し。

入れているVFWコーデック(に関係するもの):
  AMV2MT、AMV4、UtVideo14.2.1、Lagarith 1.3.27、x264vfw r2453bm、Xvid 1.3.3、
  ffshow rev4533、BlackmagicDesign DesktopVideo 10.2.2、GrassValley CodecOption 7.31-2939、
  MSI Afterburner 4.0.0-4604(RTV1というコーデックが入っている模様)

816 :名無しさん@編集中:2014/10/24(金) 22:23:01.59 ID:iwkwQurY
現時点での個人的な推測。VFWのデコードの挙動とかわかってませんので全然違うかもしれません。
正直なにがなんだかわからない。

1.MMDの背景AVI読み込みでは、コーデックに対して「形式指定無しのデコード要求」が出されるのではないか。

2.形式指定無しのデコード要求が来た場合、多くのコーデックでは内部保持形式と
  同じフォーマットでデコードデータを渡そうとする?
  ULY0/ULH0はYV12、ULY2はYUY2、ULH2はHDYC?

    1,2の参考:以下の記事のLagarithの「Always suggest RGB for Output」の説明
      ttp://goldenhige.cocolog-nifty.com/blog/2010/02/lagarith-168a.html

3.しかし、MMDの背景AVI読み込みは、VFWでRGB24しか読み込めない模様?
    参考:
      ttp://goldenhige.cocolog-nifty.com/blog/2010/01/mikumikudanceav.html

4.そのため、YV12等でそのまま渡されても理解できず、真っ黒になったりする?
  ただし、YV12等をRGB24に変換できるVFWコーデックが入っていた場合は、
  それが仲介役となってRGB24に変換してMMDに渡している?
  (なのでvidc.yv12やvidc.yuy2、vidc.hdyc等が必要だと思ったのですが、
   vidc.yv12無しでもULY0が読み込めている人がいるのでよくわからない)

MMD側の問題のような気がしますが、条件や挙動の理屈等が判明してすっきり解決できないものかと・・・。

817 :811:2014/10/25(土) 00:01:29.89 ID:PZfJz3hA
>>814あれからもう少し実験してみたんだけど、
vidc.yv12="msyuv.dll"にしてもyv12は再生できなかったから、
やはり8.1(OSが64bit版)のvfwではyv12はサポートされなくなったのかも

ff_vfwの設定をすれば「無圧縮のyv12」ならMMDでも再生できるようになったけど、
directshowみたいにフィルタの連結ができないvfwではlagalithとかの出力でyv12を
選ぶことは出来なくなってるみたい

818 :811:2014/10/25(土) 00:14:57.56 ID:PZfJz3hA
あと、virtualdubのcolor depthの設定でdecompression formatをyv12にした時は
lagalithのファイルもyv12として開くことが出来たから、やはりデコーダからレンダラ部分の
処理を自前で実装してないと開けなくなってるみたいだね
問題なく再生できる人はどんな環境なんだろ?

819 :811:2014/10/25(土) 00:38:34.84 ID:PZfJz3hA
>>816
普通はVCMの側からコーデックに最も都合の良いフォーマットを問い合わせて、
それが対応可能だったらそれを受け入れて、対応していなかったらコーデックに
RGB等で出力可能かどうかを問い合わせてみてOKならそのフォーマットでデコード出力する
という流れになってるはずだけど、この場合VCMがyv12に対応してないのに
コーデックの提案したyv12を受け入れてしまってるのが原因だと思う

本当はVCM側からRGB出力の問い合わせをすればRGBとして表示することが可能なはずだけど、
先にyv12で受け入れてしまうので、suggest RGBを設定した時だけ開けたんだと思う

yuy2は8.1のVCMでも対応しているみたいだからULY2とかは開けたんじゃないかな

820 :名無しさん@編集中:2014/10/26(日) 22:46:45.99 ID:gMc7tIdI
>>817-819
>>814-816です。ありがとうございます。色々試していてレスが遅れてしまいました。すみません。
ようやく整理できた気がしますが、まず、こちらで試してわかったことをいくつか。

●Xvid-1.3.3-20140407を入れていると、YV12のデコードが阻害されてしまう。
  (他のバージョンは確認していません)

>>817さんは
  >ff_vfwの設定をすれば「無圧縮のyv12」ならMMDでも再生できるようになった
とありましたが、うちではffdshowの「VFWの設定→Decoder→コーデック→Raw video」で
「YV12」「全YUV形式」「全サポート形式」を選んでも、YV12無圧縮のAVIをMMDの背景AVIに
正常に読み込めず、真っ黒になってしまっていました。
(なお、YV12無圧縮のAVIは、AvsPModでConvertToYV12()をしたavsを読み込み、
 「Tools→Script encoder(VFW)」で、「再圧縮なし」で出力したものです。)

この違いが不可解で色々試していたところ、VirtualDubModでYV12のAVIを開いて「File information」を見ると、
>>814にも書いた
  ttp://freesoft.tvbok.com/movie_encode/virtualdubmod/yv12avs.html
の記事のスクショにもあるように、「Xvid MPEG-4 Codec」がデコーダとして選ばれており、シークすると
  Error decompressing video frame 1: The source image format is not acceptable. (error code -2)
のようにデコードエラーを起こしていました。

そこで、Xvid 1.3.3をアンインストールしてみたところ、ffdshowのVFW設定が効くようになり、
「Raw video」で「YV12」「全YUV型」「全サポート形式」を選んでいれば、VirtualDubModでも
MMDの背景AVI読み込みでも、YV12無圧縮のAVIが正常に読み込めるようになりました。

つまり、Xvid 1.3.3が中途半端にしゃしゃりでてYV12をデコードしようとして失敗していたというわけですね・・・。

また、Xvid 1.3.3をアンインストールしたことでffdshowのYV12デコードが有効になったため、
ULY0、ULH0のAVIも、ffdshowをちゃんと設定すればMMDの背景AVIとして問題なく読み込めるようになりました。

821 :名無しさん@編集中:2014/10/26(日) 22:49:21.75 ID:gMc7tIdI
 
●DivXにも一応YV12 Decoderがついている(今更DivXを使う必要もないのであまり推奨しない)

DivXは10.2からDivXコーデックパックを外してしまいましたが、こちらの記事で最終版が配布されています。
  DivX 10.2: Removing Codec Pack | DivX Blog
  http://blog.divx.com/2014/04/23/codec-pack/
末尾にある2014/8/18追記のところの「〜download it 【here】」のところです。
bit.lyからの警告が出ますが、それを無視すればダウンロード可能。
インストール時にノートン先生が反応しますが、これは「RegClean Pro」という迷惑ソフトを入れようとするため。
途中で拒否できるので絶対に拒否する必要があります。うっかり入れないように。
インストールされるDivXコーデックは、
  DivX 6.9.2 Codec 06_09_02_00026_VfwCodec
  ビルト オン Feb 19 2010 @ 11:26:13
となっています。これには
  DivX 6.9.2 YV12 Decoder
が入っていますので、これでもYV12デコードができるようになります。(ffdshowより優先して使われます)
ただし32bit版だけですので、64bitアプリでのYV12デコードはできません。

●VirtualDubとVirtuaDubMod

 VirtalDubでは、「Internal DIB decoder」が内蔵されており、
 YV12などの各種非圧縮フォーマットを自前でデコードできるようになっています。
 入出力色空間なども>>818さんが言われているように色々設定でき、
 VCMのYV12デコーダーなどは必要としません。

 VirtualDubModの方は、入出力がRGBに限られているようです。
 そのため、YV12などを読み込むためには、別途対応するVCMのデコーダーが必要になります。
 試しにYV12無圧縮のAVIファイルを読み込ませてみると、YV12デコーダーの有無を判定できます。
 エラーが出ればYV12デコーダーが入っていないということ。
 エラーが出なかった場合は、「File→File Information」を開いて「Decompressor」を見れば、
 使われているYV12デコーダーがわかります。(ただしVirtualDubModは32bit版しかありません)

822 :名無しさん@編集中:2014/10/26(日) 22:58:16.13 ID:gMc7tIdI
MMDの背景AVIでULH2/ULY0/ULH0が真っ黒になることがある件の推測。

 1.MMDの背景AVI読み込みはVFWで、正常に扱えるのはRGB24のみ。

 2.普通はコーデックとネゴシエーションを行い、RGB24しか受け入れられないなら、
   コーデックからRGB24でデータをもらえばいい。
   しかし、MMDの背景AVI読み込みはこの部分の処理に問題があり、
   コーデック側が提示した形式を無条件で受け入れてしまう(?)。

 3.UtVideoの場合、入出力フォーマットはREADME参照。
     ttp://umezawa.dyndns.info/archive/utvideo/utvideo-14.2.1-readme.ja.html
   ULY0はYUY2、ULH2はHDYC、ULY0/ULH0はYV12が最も優先度が高い。
   ネゴシエーションに問題のあるMMDの背景AVI読み込みでは、
   UtVideoはこれらのフォーマットで出力を行おうとする(?)。

 4.MMD側では、YUY2やHDYC、YV12はそのままでは読み込めない。
   だがYUY2やHDYC、YV12をRGB24にデコードできるVCMコーデックが入っていれば、
   それらがRGB24に変換し、正常に読み込むことができる(ようだ)。
   入っていなかった場合は正常に読み込めず、真っ黒になってしまう。

 5.YUY2はWindows標準のmsyuv.dllでサポートされているため、ULY2は問題ない。
   YV12やHDYCはWindows標準ではサポートされない(※注1)ため、対応するVCMコーデックが必要。
   YV12はffdshow(※注2)、HDYCはBlackmagic DesktopVideo。
   これらを入れれば、ULY0/ULH0/ULH2もMMDの背景AVIとして正常に読み込めるようになる。
   (ただ、MMDの背景AVI読み込みのためだけにこれらを入れる必要は無い。別のコーデックを使えばよいだけ。)

     ※注1: Windows8.1でサポートされていないのは確認。その他は不明。
     ※注2: ffdshowの場合「VFWの設定→Decoder→コーデック→Raw video」で「YV12」か「全YUV形式」「全サポート形式」を選択。
          DivXもYV12デコーダーを持つが、既に更新が停止されている上、32bit版しか無いのでx64版MMDでは役に立たない。
          Xvidは、Xvid-1.3.3-20140407を入れると正常にYV12デコードができず、ffdshowの邪魔をするだけとなるので使えない。

823 :名無しさん@編集中:2014/10/26(日) 23:52:32.20 ID:gMc7tIdI
追記:

Lagarithでも、YV12で圧縮したならYV12で出力しようとするので、>>822のULY0/ULH0と同様に
MMDの背景AVI読み込みでは、YV12デコーダーが入っていないと真っ黒になります。
Lagarithの設定の「Always Suggest RGB for Output」にチェックを入れておくと、
YV12で出力するのではなくRGBで出力するようになるので正常に読み込めるようです。

余談ですが、MMDv9.24のx64版でLagarithのYUY2で圧縮したAVIを読ませると、
lagarith.dllでエラーが起きてMMDごと強制終了となります。(うちの環境だけかもしれませんが)

824 :名無しさん@編集中:2014/10/26(日) 23:57:19.22 ID:gMc7tIdI
更に余談ですが、テストの過程で、
  「無圧縮のYUV系AVIをMediaFoundationで再生すると、解像度や色がおかしく見える」
ということに気づきました。
Windows8.1環境で、YUY2やYV12無圧縮のAVIをWindowsMediaPlayerで再生するか、
QonohaでMediaFoundationを優先する設定にして再生すると、以下の画像のようになってしまいます。
  ttp://2sen.dip.jp/cgi-bin/upgun/up1/source/up0838.png
なおtopoEditは以下のようになっています。
  http://2sen.dip.jp/cgi-bin/upgun/up1/source/up0839.jpg

何が起きているかはよくわからないのですが、豆知識的な情報として貼っておきます。

825 :名無しさん@編集中:2014/10/26(日) 23:59:44.54 ID:gMc7tIdI
よく見ると色は特に問題ないのかな・・・

826 :名無しさん@編集中:2014/10/27(月) 01:58:33.77 ID:MXSxCZf3
>>815で書いた

 >2.背景AVI読み込みでMMDが強制終了することもあったのでイベントビューアを見てみると、
 >  DxtoryCodec.dllで障害が発生していた。やむをえずDxtoryをアンインストール。
 >  (入れていたのはDxtory 2.0.128か126。)

についても、条件と原因を整理しました。発生するのは
  ・Dxtory(2.0.128で確認)をインストールしており、
  ・x64のYV12やHDYCのデコーダが存在しない場合に
  ・MMDのx64版で
  ・ULY0/ULH0/ULH2やLagarithのYV12など、YV12やHDYCを優先するコーデックのAVIを読ませた場合
です。

他にYV12やHDYCのデコーダーが無い場合に、なぜかDxtory Video Decoderが、
それらのデコードを行おうとして失敗するのが原因のようです。
試しにVirtualDubModでYV12のAVIを読ませてみると、DecompressorがDxtory Video Decoderになっており、
  VideoSourceAVI error: An unknown error occurred (may be corrupt data). (error code -100)
というデコードエラーが発生しています。
x86版MMDであれば真っ黒になるだけで済みますが、x64版MMDだと強制終了につながるようです。
なお、ffdshow(x64版)のVFW設定でYV12デコードを有効にしておけば、そちらが優先されるため、
x64版MMDでのDxtoryCodec.dllによる強制終了は発生しなくなります。
(ULH2はHDYCなのでBlackmagicDesign DesktopVideoを入れないと駄目ですが)

なおffdshow rev4533のx64版では、VFWコーデック(要注意警告あり)を有効にしてインストールしても
「VFWの設定」のショートカットが作られず、そのままではVFWの設定が開けないようです。
ただし、VirtualDubのx64版があれば、「Video→Compression→ffdshow Video Codec→Configure」で
x64版ffdshowのVFWの設定画面を開くことが可能です。
ただ、これでYV12デコードを有効にしても、x64版MMDではULY0/ULH0やLagarithYV12が正常に読めるようになるだけで、
YV12無圧縮のAVIは「AVIファイルを読み込めません」となるようです。
x86版の場合はYV12無圧縮のAVIも正常に読み込めるようになるのですが、x64版だとなぜか駄目です。

272 KB
新着レスの表示

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)