Ut Video Codec Suite 14.2.1 readme (日本語)
著作権表示
英語
Ut Video Codec Suite
Copyright © 2008-2014 UMEZAWA Takeshi
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
日本語
Ut Video Codec Suite
Copyright © 2008-2014 梅澤 威志
このプログラムはフリーソフトウェアです。
あなたはこれを、フリーソフトウェア財団によって発行された GNU 一般公衆利用許諾契約書
(バージョン2か、希望によってはそれ以降のバージョンのうちどれか)
の定める条件の下で再頒布または改変することができます。
このプログラムは有用であることを願って頒布されますが、
*全くの無保証* です。
商業可能性の保証や特定の目的への適合性は、言外に示されたものも含め全く存在しません。
詳しくはGNU 一般公衆利用許諾契約書をご覧ください。
あなたはこのプログラムと共に、
GNU 一般公衆利用許諾契約書の複製物を一部受け取ったはずです。
もし受け取っていなければ、フリーソフトウェア財団まで請求してください
(宛先は the Free Software Foundation, Inc.,
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA)。
概要
Ut Video Codec Suite は、複数のプラットフォームとインターフェースをサポートするロスレス映像コーデックです。インターフェースは VCM、DMO、MFT、QuickTime(Mac のみ)をサポートします。内部保持形式は RGB、RGBA、YUV422、YUV420 をサポートします。
動作環境
必須環境 (Windows x86)
- OS
- Windows Vista 以降
- CPU
- SSE2 をサポートする i686 以降の CPU
(Intel だと Pentium 4 以降)
必須環境 (Windows x64)
- OS
- Windows Vista (x64) 以降
- CPU
- AMD64 あるいは Intel 64(旧称 EM64T)をサポートする CPU
必須環境 (Mac OS X)
- OS
- Mac OS X 10.6 Snow Leopard 以降
- CPU
- SSE2 をサポートする i686 以降の CPU
(Intel Mac でこれに該当しないものは存在しません)
推奨環境
- CPU
- 第1世代 Intel Core i シリーズ (Nehalem) 以降
インストールに関する注意
Windows
バージョン 10.2.0 またはそれ以前がインストールされている場合、それをアンインストールしてからこのバージョンをインストールしてください。
VCM コーデックが正しく登録されないようであれば、最終手段としてインストール先ディレクトリに入っている utvideo.reg をレジストリに結合してください。なお、このファイルは Windows ディレクトリが C:\Windows であることを仮定しています。
FourCC 一覧
FourCC | コーデック名 | 内部保持形式 | 対応フォーマット(優先度順) |
VCM / DMO / MFT | QT |
ULRA | UtVideo RGBA | RGBA 4:4:4:4 8bit フルレンジ | RGBA | ARGB |
ULRG | UtVideo RGB | RGB 4:4:4 8bit フルレンジ | RGB24 RGB32 | RGB ARGB |
ULY2 | UtVideo YUV422 BT.601 | YCbCr (BT.601) 4:2:2 8bit リミテッド | YUY2 (YUYV YUNV) UYVY (UYNV) RGB24 RGB32 | RGB ARGB |
ULY0 | UtVideo YUV420 BT.601 | YCbCr (BT.601) 4:2:0 8bit リミテッド | YV12 YUY2 (YUYV YUNV) UYVY (UYNV) RGB24 RGB32 | RGB ARGB |
ULH2 | UtVideo YUV422 BT.709 | YCbCr (BT.709) 4:2:2 8bit リミテッド | HDYC YUY2 (YUYV YUNV) UYVY (UYNV) RGB24 RGB32 | RGB ARGB |
ULH0 | UtVideo YUV420 BT.709 | YCbCr (BT.709) 4:2:0 8bit リミテッド | YV12 HDYC YUY2 (YUYV YUNV) UYVY (UYNV) RGB24 RGB32 | RGB ARGB |
UQY2 | UtVideo Pro YUV422 10bit | YCbCr 4:2:2 10bit | v210 | - |
- RGB 系のフォーマットにおける「8bit フルレンジ」とは、R,G,B=0-255 のものを指します。YUV 系のフォーマットにおける「8bit リミテッド」とは、Y=16-235, U,V=16-240 のものを指します。
- 太字はネイティブな(=色空間の変換が発生しない)フォーマットです。可能な限りこのフォーマットで入出力することが推奨されます。
- カッコ内は、その前に書いてあるものと FourCC が異なるだけで中身が同じフォーマットです。例えば、YUY2 と YUYV と YUNV は中身が同じフォーマットです。
寄付について
Ut Video Codec Suite はフリーソフトウェアです。開発を支援するための寄付は常に歓迎しております。詳細は作者のblogの「寄付について」ページをご覧ください。
ニコニコ動画のコンテンツツリーについて
ニコニコ動画において、コンテンツツリーの親作品として指定するために、静画を投稿してあります(2012年4月2日に再投稿しました)。Ut Video Codec Suite を使用して作成された動画を投稿の際は、親作品として指定していただけると励みになります。
開発環境
Windows
開発ツール
- Visual Studio 2005 SP1
- Windows SDK for Windows Server 2008 and .NET Framework 3.5 (Windows SDK 6.1)
- NASM 2.10.09
- AMD CodeAnalyst for Windows v3.2
- Inno Setup 5.4.2 (ANSI)
マシン 1
- OS
- Windows 7 Ultimate x64
- CPU
- Intel Core i7-2600K
- RAM
- DDR3-1600 32GB
マシン 2
- OS
- Windows 7 Ultimate x64
- CPU
- Intel Core i3-540
- RAM
- DDR3-1333 16GB
マシン 3
- OS
- Windows 7 Ultimate x64
- CPU
- Intel Core i7-4770
- RAM
- DDR3-1600 16GB
マシン 4
- OS
- Windows 7 Ultimate x64
- CPU
- AMD Phenom II X4 910e
- RAM
- DDR2-800 4GB
Mac OS X
開発ツール
マシン 1
- OS
- Mac OS X 10.7 Lion
- CPU
- Intel Core i5-2415M
- RAM
- DDR3-1333 8GB
改版履歴
バージョン 14.2.1
- バグ修正
- グローバル設定で「コーデック側で設定をグローバルに保持する」をチェックしていても、コーデックの設定が正しく保存されていなかった。
バージョン 14.2.0
- 性能向上
- UQY2: フレーム分割数を指定できるようにし、マルチスレッド動作できるようにした。
バージョン 14.1.1
- 機能追加
- UQY2: 映像の幅の制限を「2の倍数である」に緩和した。
バージョン 14.0.0
- 機能追加
- 内部保持形式が YUV422 10bit のコーデック (FourCC: UQY2) を追加した。とても遅い。
- その他
- コーデックの名前を変更した。
- 必須 OS (Windows) を Vista 以降にした。
バージョン 13.3.1
- バグ修正
- AVX をサポートしないプロセッサでクラッシュすることがあった。
- 32個を超える論理プロセッサを持つシステムでクラッシュすることがあった。
バージョン 13.3.0
- 性能向上
- ULRG,ULRA: 「圧縮率優先」でエンコードされた映像の RGB32/ARGB へのデコードを高速化した。
バージョン 13.2.1
- バグ修正
- SSSE3 をサポートしないプロセッサでクラッシュすることがあった。
バージョン 13.2.0
- 性能向上
- 共通: x64 バージョンで、デコードを高速化した。
バージョン 13.1.0
- 性能向上
- ULRG,ULRA,ULY2,ULH2: SSSE3 命令が使用可能な環境で、ネイティブな色空間からのエンコードを高速化した。
- ULRG,ULRA,ULY2,ULH2: SSSE3 命令が使用可能な環境で、「圧縮率優先」でエンコードされた映像のネイティブな色空間へのデコードを高速化した。
- ULY2,ULH2: SSSE3 命令が使用可能な環境で、RGB からのエンコードを高速化した。
- ULY2,ULH2: SSE4.1 命令が使用可能な環境で、RGB へのデコードを高速化した。
バージョン 13.0.1
- その他
- 13.0.0 でパッケージングにミスを発見したのでやりなおした。
バージョン 13.0.0
- 機能追加
- 色空間変換係数に BT.709 のものを使うコーデック (FourCC: ULH2, ULH0) を追加した。ULY2, ULY0 と同程度にアセンブラ化されている。
- その他
- コーデックの名前を変更した。
- 推奨 CPU を Nehalem 以降にした。
バージョン 12.2.1
- バグ修正
- ULY0: インターレースで YUV422 で入出力するときの色空間変換処理が間違っていたと思われる。
バージョン 12.2.0
- 性能向上
- 「デコード速度優先」でエンコードされた映像のデコードを高速化した。5% から 10% 程度。
- x64 バージョンで、「圧縮率優先」でエンコードされた映像のデコードを高速化した。1% 程度。
- ULY2: x64 バージョンで、RGB からのエンコードを高速化した。2% 程度。
バージョン 12.1.0
- 性能向上
- ULRG,ULRA,ULY2: AVX 命令が使用可能な環境で、ネイティブな色空間からのエンコードを高速化した。x86 の場合は 10% 程度、x64 の場合は 12% 程度。
- ULRG,ULRA,ULY2: AVX 命令が使用可能な環境で、「圧縮率優先」でエンコードされた映像のネイティブな色空間へのデコードを高速化した。x86 と x64 ともに 5% 程度。
バージョン 12.0.1
- バグ修正
- Windows Vista 以降で、アンインストールが失敗する。
- x64 バージョンで、デコード時にクラッシュすることがある。
バージョン 12.0.0
- 機能追加
- Media Foundation 用エンコーダおよびデコーダを追加した。エンコード設定ダイアログはまだ存在しない。
バージョン 11.1.1
- バグ修正
- Windows で、エンコード時およびデコード時に、出力イメージのサイズ(バイト数)が正しく設定されないことがある。
バージョン 11.1.0
- 性能向上
- Mac で、RGB から ULY2 へのエンコードをアセンブラ化して高速化した。
- 共通: デコードを少しだけ高速化した。
- 共通: x64 で、エンコードを 10% 程度高速化した。
- その他
- Mac で、中間圧縮用コーデックとしては不要なフラグを出力しないことによって、エンコード後のサイズをちょっとだけ小さくした。
バージョン 11.0.0
- 機能追加
- QuickTime for Mac 用エンコーダコンポーネントを追加した。RGB24/ARGB32 からのエンコードのみ。あまり速くない。エンコード設定ダイアログはまだ存在しない。
- バグ修正
- ULY2: QuickTime デコーダで、映像の幅や出力バッファの寸法によっては、映像が乱れてデコードされる。
バージョン 10.2.4
- その他
- Windows のインストーラで、インストール前の注意を表示するようにした。
- Mac で、コーデック名をより適切に報告するようにした。
バージョン 10.2.3
- バグ修正
- Windows で、VCM コーデックオブジェクトにコーデック設定を設定した時、実際には成功しているにもかかわらず失敗していると返していた。
- その他
- Windows で、どうしてもうまくインストールできないときのための救済用 .reg ファイルを再追加した。
バージョン 10.2.2
- バグ修正
- Windows Vista x64 と Windows XP x64 で、x86 VCM コーデックの登録に失敗していた。
バージョン 10.2.1
- その他
- Windows で、インストーラを Inno Setup ベースにし、x86 と x64 で単一のインストーラになるようにした。
バージョン 10.2.0
- 性能向上
- Mac で、Windows 版と同程度にアセンブラ化した。
バージョン 10.1.0
- 性能向上
バージョン 10.0.3
- バグ修正
- Windows で、入出力の幅と高さが一致していることをチェックしていない。
バージョン 10.0.2
- バグ修正
- Windows で、デコード時に稀にクラッシュすることがある。
バージョン 10.0.1
- バグ修正
- Windows で、グローバル設定で「コーデック側で設定をグローバルに保持する」にしていると、コーデックを読み込んだときにクラッシュする。
- その他
- Mac で、ベース SDK を 10.6 から 10.5 にした。
バージョン 10.0.0
- 機能追加
- QuickTime for Mac 用コンポーネントを追加した。RGB24/ARGB32 へのデコードのみ。とても遅い。
- その他
バージョン 9.0.3
- バグ修正
- ULY2: DMO エンコーダで、RGB24/32 以外のフォーマットで入力すると、自分で提示した出力フォーマットを受け入れていなかった。
- ULY0: DMO エンコーダで、RGB24/32 以外のフォーマットで入力すると、自分で提示した出力フォーマットを受け入れていなかった。
- その他
- DMO エンコーダおよびデコーダで、入出力フォーマットをチェックする際に、一部のパラメータをチェックしないようにした。
バージョン 9.0.1
- バグ修正
- DMO デコーダで、出力フォーマットを列挙する際に矛盾したフォーマットを返していた。
バージョン 9.0.0
- 機能追加
- DMO インターフェースでデコーダを使えるようにした。
バージョン 8.5.2
- バグ修正
- utv_vcm.dll のインストール先が間違っており、VCM インターフェースでコーデックが使えなかった。
バージョン 8.5.1
- バグ修正
- ULY2: x64 版で RGB からエンコードする時に、映像が壊れたりエンコーダがクラッシュしたりする可能性がある。
- その他
- utvideo.dll から VCM インターフェースを分離して utv_vcm.dll とした。
バージョン 8.5.0
- 性能向上
- 共通: x86 でのデコードを 10% ほど高速化した。
- 共通: x64 版をアセンブラ化し、おおむね x86 版と同程度の速度にした。
バージョン 8.4.0
- 性能向上
- ULRG: デコード速度優先でエンコードされたものの RGB24 や RGB32 へのデコードを高速化した。Core 2 で x86 の場合 14% ほど、x64 の場合 6% ほど。
- ULRA: デコード速度優先でエンコードされたものの RGBA へのデコードを高速化した。Core 2 で x86 の場合 17% ほど、x64 の場合 6% ほど。
バージョン 8.3.0
- 性能向上
- ULY2: デコード速度優先でエンコードされたものの YUY2 や UYVY へのデコードを高速化した。Core 2 で 12% ほど。
- ULY0: デコード速度優先でエンコードされたものの YV12 へのデコードを高速化した。Core 2 で 5% ほど。
- その他
- ULY2: YVYU と VYUY での入出力のサポートを廃止した。
- ULY0: YVYU と VYUY での入出力のサポートを廃止した。
バージョン 8.2.1
- その他
- ULY2: デコード時に RGB32 で出力する場合、安全のためアルファチャンネルと解釈されうるフィールドは 255 で埋めるようにした。
- ULY0: デコード時に RGB32 で出力する場合、安全のためアルファチャンネルと解釈されうるフィールドは 255 で埋めるようにした。
バージョン 8.2.0
- 性能向上
- 共通: デコードを高速化した。Core 2 で x86 の場合 20〜30% ほど、x64 の場合 20〜40% ほど。
バージョン 8.1.0
- 機能追加
- エンコーダの設定をコーデック側でグローバルに保持できるようにした。
- コーデックを使う側(編集ソフトなど)からの設定変更を無視できるようにした。
バージョン 8.0.0
- 機能追加
- DMO インターフェースでエンコーダを使えるようにした。
- その他
- x64 版のインストーラには x64 バージョンの DLL のみが含まれるようにした。
- x86 版のインストーラを x64 Windows にインストールできるようにした。
バージョン 7.1.1
- その他
バージョン 7.1.0
- 性能向上
- Athlon 系プロセッサで発生するパフォーマンスの劇的な低下を改善した。
バージョン 7.0.4
- その他
- コーデックをシステムに登録する方法を(また試験的に)変更した。
バージョン 7.0.3
- その他
- コーデックをシステムに登録する方法を(試験的に)変更した。
バージョン 7.0.2
- その他
- x86 版のインストーラで x64 Windows にインストールできないようにした。
- 文言を多少調整した。
バージョン 7.0.1
- バグ修正
- x64 版のインストーラで、環境によっては DLL が期待通りに登録されない。
- その他
- コーデックの表示名が長すぎて、名前を表示するところに収まらないことがあるため、表示名を短くした。
バージョン 7.0.0
- 機能追加
- x64 バージョンを追加した。x64 バージョンのインストーラには x64 バージョンと x86 バージョンの両方の DLL が含まれる。
- その他
- DLL のインストール先を Program Files 以下から System32/SysWOW64 以下に変更した。
バージョン 6.1.0
- 機能追加
- 共通: フレーム分割数を論理プロセッサ数と同じにするオプションを追加した。
バージョン 6.0.2
- その他
- 6.0.1 でパッケージングにミスを発見したのでやりなおした。
バージョン 6.0.1
- その他
- ダイナミックリンクからスタティックリンクに変更した。
バージョン 6.0.0
- 機能追加
- 共通: インターレース映像に対する特別な処理を追加した。
- バグ修正
- ULY0: 縦長の映像を扱うとクラッシュする可能性があった。
バージョン 5.3.1
- バグ修正
バージョン 5.3.0
- 機能追加
- ULY0: エンコード時に YUY2 で入力できるようにした。とりあえず作っただけなので、YUY2 入力時のエンコードは遅い。
- ULY0: デコード時に YUY2 で出力できるようにした。とりあえず作っただけなので、YUY2 出力時のデコードは遅い。
バージョン 5.2.3
- バグ修正
- 共通: 特定の性質を持つフレームをエンコードする際に、稀にフレームが破損する。
バージョン 5.2.2
- その他
- 5.2.1 でパッケージングにミスを発見したのでやりなおした。
バージョン 5.2.1
- その他
- 5.2.0 でパッケージングにミスを発見したのでやりなおした。
バージョン 5.2.0
- 機能追加
- ULY2: エンコード時に RGB32 で入力できるようにした。アセンブラ化済み。
- ULY0: エンコード時に RGB32 で入力できるようにした。とりあえず作っただけなので、RGB32 入力時のエンコードは遅い。
- ULY0: デコード時に RGB32 で出力できるようにした。とりあえず作っただけなので、RGB32 出力時のデコードは遅い。
バージョン 5.1.2
- その他
- 5.1.1 でパッケージングにミスを発見したのでやりなおした。
バージョン 5.1.1
- バグ修正
- ULY0: デコード時に、出力イメージのサイズ(バイト数)が正しく設定されないことがある。ULY0 以外ではこの問題はない。
バージョン 5.1.0
- 機能追加
- ULY0: エンコード時に RGB24 で入力できるようにした。とりあえず作っただけなので、RGB24 入力時のエンコードは遅い。
- ULY0: デコード時に RGB24 で出力できるようにした。とりあえず作っただけなので、RGB24 出力時のデコードは遅い。
バージョン 5.0.0
- 機能追加
- YUV420 のためのコーデック (FourCC: ULY0) を追加した。
- その他
- 設定を行わない場合は「デコード速度優先」で動作するようにした。
- ULY2: 横幅が偶数のもののみ扱えるようにした。
バージョン 4.1.0
- 性能向上
- 共通: エンコードをほんのわずかだけ高速化した。
- 共通: デコードをほんのわずかだけ高速化した。
バージョン 4.0.2
- その他
- ULRG: デコード時に RGB32 で出力する場合、安全のためアルファチャンネルと解釈されうるフィールドは 255 で埋めるようにした。
- 共通: エンコード時に出力の biBitCount には入力の実効ビット数を設定するようにした。
バージョン 4.0.1
- その他
- 4.0.0 でパッケージングにミスを発見したのでやりなおした。
バージョン 4.0.0
- 機能追加
- RGBA のためのコーデック (FourCC: ULRA) を追加した。
バージョン 3.8.0
- 機能追加
- 共通: Predict left フレーム内予測方式を追加した。手元の計測では、今までの実装(Predict median)と比較して、エンコード速度ほぼ同じ、圧縮率 10% 低下(ファイルサイズが 10% 増える)、デコード速度 50% 向上(デコード時間が 30% 強短くなる)。
バージョン 3.7.0
- 性能向上
- 共通: デコードを高速化した。Core 2 の場合で 9% 程度。
- ULY2: RGB24 からのエンコードを高速化した。Core 2 の場合で 9% 程度。
バージョン 3.6.0
- 性能向上
- ULY2: RGB24 からのエンコードをアセンブラ化により高速化した。Core 2 の場合で 42% 程度。これでシングルスレッドでも Huffyuv (Predict median) より有意に速くなった。
バージョン 3.5.0
- 機能追加
- ULY2: デコード時に RGB24 で出力できるようにした。最初からアセンブラバージョンがある。
- バグ修正
- ULY2: RGB24 エンコード時に、横幅が 4 の倍数ではない場合、映像の右端にゴミが発生する。
バージョン 3.4.0
- 機能追加
- ULY2: エンコード時に RGB24 で入力できるようにした。例によってとりあえず作っただけなので、RGB24 入力時のエンコードは遅い。
- バグ修正
- ULY2: RGB32 デコード時に出力フォーマットの biHeight の正負を見ていないため、環境によっては上下が反転してデコードされる。
バージョン 3.3.1
- バグ修正
- 共通: エンコーダを使う側のソフトによっては、エンコードを開始すると不正な処理で落ちる。
- その他
- 設定ダイアログのタイトル文字列を適切なものに変更した。
- バージョン情報ダイアログにバージョンを表示するようにした。
バージョン 3.3.0
- 性能向上
- 共通: デコードを高速化した。Core 2 の場合で 20% 程度。これでシングルスレッドでも Huffyuv (Predict median) より有意に速くなった。
- 共通: エンコードを高速化した。Core 2 の場合で 8% 程度。
- ULY2: RGB32 へのデコードをアセンブラ化により高速化した。Core 2 の場合で 47% 程度(前述の共通の高速化の効果を含む)。
- バグ修正
- 共通: 処理できないフォーマットを渡してエンコード/デコードを開始しようとしてもエラーにならない。
バージョン 3.2.0
- 機能追加
- ULY2: デコード時に RGB32 で出力できるようにした。とりあえず作っただけなので、RGB32 出力時のデコードは遅い。
- バグ修正
- ULRG: フレーム分割の方法が間違っていた。この修正により、フレーム分割数が 1 ではない場合、3.1.0 以前の ULRG との互換性は失われる。
バージョン 3.1.0
- 機能追加
- ULY2: YUYV, YUNV, UYVY, UYNV, YVYU, VYUY のサポートを追加した。
- ULRG: RGB32 のサポートを追加した。
- バグ修正
- ULRG: WMP で再生しようとすると不正な処理で落ちるのを修正した。
バージョン 3.0.0
- RGB のためのコーデック (FourCC: ULRG) を追加した。
バージョン 2.2.0
バージョン 2.1.0
バージョン 2.0.0
バージョン 1.1.3
一般公開された最初のバージョン。
製作者のサイト