Ut Video Codec Suite 20.0.0 readme (English)
Copyright Notice
Ut Video Codec Suite
Copyright © 2008-2018 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
LZ4 Library
Ut Video Codec Suite uses LZ4 Library.
LZ4 Library
Copyright (c) 2011-2016, Yann Collet
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Overview
Ut Video Codec Suite is a multi-platform and multi-interface lossless video codec.
Environment
Minimum requirement (Windows x86)
- OS
- Windows 7 or later
- CPU
- i686-compatible CPU with SSE2 support
(e.g. Pentium 4 or later)
Minimum requirement (Windows x64)
- OS
- Windows 7 (x64) or later
- CPU
- CPU with AMD64 or Intel 64 (formerly EM64T) support
Minimum requirement (Mac)
- OS
- OS X 10.11 El Capitan or later
- CPU
- i686-compatible CPU with SSE2 support
(All Intel Mac meet this requirements)
Recommended
- CPU
- 1st Generation Intel Core i series (codename "Nehalem") or later
Installation Notice
Windows
If version 10.2.0 or older is installed, you have to uninstall that version before you install this version.
If VCM codec is not registered properly, merge utvideo.reg in install destination with registry as a last resort. This file assumes Windows directory is C:\Windows.
List of FourCC
FourCC | Codec name | Internal format | Supported input/output format (in order of priority) |
VCM / DMO | QT |
ULRA | UtVideo RGBA | RGBA 4:4:4:4 8bit full-range | RGBA | ARGB |
UMRA | UtVideo T2 RGBA |
ULRG | UtVideo RGB | RGB 4:4:4 8bit full-range | RGB24 RGB32 | RGB ARGB |
UMRG | UtVideo T2 RGB |
ULY4 | UtVideo YUV444 BT.601 | YCbCr (BT.601) 4:4:4 8bit limited | YV24 RGB24 RGB32 | RGB ARGB |
UMY4 | UtVideo T2 YUV444 BT.601 |
ULY2 | UtVideo YUV422 BT.601 | YCbCr (BT.601) 4:2:2 8bit limited | YUY2 (YUYV YUNV yuvs) UYVY (UYNV 2vuy) YV16 RGB24 RGB32 | yuvs 2vuy RGB ARGB |
UMY2 | UtVideo T2 YUV422 BT.601 |
ULY0 | UtVideo YUV420 BT.601 | YCbCr (BT.601) 4:2:0 8bit limited | YV12 YUY2 (YUYV YUNV yuvs) UYVY (UYNV 2vuy) YV16 RGB24 RGB32 | yuvs 2vuy RGB ARGB |
ULH4 | UtVideo YUV444 BT.709 | YCbCr (BT.709) 4:4:4 8bit limited | YV24 RGB24 RGB32 | RGB ARGB |
UMH4 | UtVideo T2 YUV444 BT.709 |
ULH2 | UtVideo YUV422 BT.709 | YCbCr (BT.709) 4:2:2 8bit limited | HDYC YUY2 (YUYV YUNV yuvs) UYVY (UYNV 2vuy) YV16 RGB24 RGB32 | HDYC yuvs 2vuy RGB ARGB |
UMH2 | UtVideo T2 YUV422 BT.709 |
ULH0 | UtVideo YUV420 BT.709 | YCbCr (BT.709) 4:2:0 8bit limited | YV12 HDYC YUY2 (YUYV YUNV yuvs) UYVY (UYNV 2vuy) YV16 RGB24 RGB32 | HDYC yuvs 2vuy RGB ARGB |
UQRA | UtVideo Pro RGBA 10bit | RGBA 4:4:4 10bit full-range | b64a | b64a |
UQRG | UtVideo Pro RGB 10bit | RGB 4:4:4 10bit full-range | b48r b64a | b48r b64a |
UQY2 | UtVideo Pro YUV422 10bit | YCbCr 4:2:2 10bit limited | v210 | v210 |
- Bold are "native" (no colorspace conversion occurs) formats. It is recommended to input/output with that formats.
- Formats written in brackets are equivalent format with preceding format. For example, YUY2, YUYV and YUNV are equivalent.
About Donations
Ut Video Codec Suite is a free software. Donations to support development are always welcome. For more information, visit "About Donations" page.
Development Environment
Windows
Development Tools
- Visual Studio 2015
- Cygwin x86
- CodeXL 2.5
- Inno Setup 5.5.8 (ANSI)
Machine 1
- OS
- Windows 7 Ultimate x64 (ja)
- CPU
- Intel Core i7-2600K
- RAM
- DDR3-1600 32GB
Machine 2
- OS
- Windows 7 Ultimate x64 (ja)
- CPU
- Intel Core i3-540
- RAM
- DDR3-1333 16GB
Machine 3
- OS
- Windows 7 Ultimate x64 (ja)
- CPU
- Intel Core i7-4770
- RAM
- DDR3-1600 16GB
Machine 4
- OS
- Windows 7 Ultimate x64 (ja)
- CPU
- AMD Phenom II X4 910e
- RAM
- DDR2-800 4GB
OS X
Development Tools
Machine 1
- OS
- macOS 10.12 Sierra
- CPU
- Intel Core i5-2415M
- RAM
- DDR3-1333 8GB
Version history
Version 20.0.0
- New features
- UMxx: Add temporal compression.
- UMxx: Speed up
Version 19.1.0
- New features
- UMxx: Add QuickTime encoders.
- Performance Improvements
- Bug fixes
- ULxx: Encoders do not return error while being set wrong codec configuration.
Version 19.0.1
- New features
- Add new codecs which focus on speed (FourCC: UMRA, UMRG, UMY4, UMY2, UMH4, UMH2). Decode only in case of QuickTime components.
Version 18.2.1
- Others
- UQxx: Default value of frame divide count is now same as number of logical processors.
Version 18.2.0
- Performance Improvements
Version 18.1.0
- Performance Improvements
- ULY0, ULH0: Speed up input from / output to RGB formats and YV16.
- Bug fixes
- ULY4, ULH4, ULY2, ULH2: QuickTime component sets wrong alpha value while decoding to ARGB.
Version 18.0.0
- New features
- ULxx: Add "Predict Gradient" intra-frame prediction method.
- Performance Improvements
Version 17.4.1
No user-visible changes.
Version 17.4.0
- Performance Improvements/dt>
- UQY2, UQRG, UQRA: Speed up encoding.
Version 17.3.0
- New features
- ULY2, ULH2, ULY0, ULH0: Add support of input from / output to YV16.
- Performance Improvements
- ULY4, ULH4, ULY2, ULH2, ULY0, ULH0: Speed up input from / output to native planar formats.
Version 17.2.0
- Performance Improvements
- Speed up decoding significantly.
Version 17.1.0
- Performance Improvements
- ULY4,ULH4: Speed up encoding from RGB formats.
- ULY4,ULH4: Speed up decoding to RGB formats.
Version 17.0.0
- New features
- Add codecs whose internal formats are YUV444 8bit (FourCC: ULY4, ULH4). Not very fast in case of RGB input/output.
Version 16.1.1
- Bug fixes
- Encoders crash if "Assume interlace video" option is enabled.
- Others
- Removed QuickTime for Windows codec.
Version 16.1.0
- New features
- QuickTime version are now compatible with Adobe software.
Version 16.0.0
- New features
- Add codecs whose internal formats are RGB 10bit and RGBA 10bit. (FourCC: UQRG, UQRA). Very slow.
- Bug fixes
- DMO codecs suggested output formats for some unsupported input formats.
- VCM/DMO codecs did not suggest raw formats that should be supported.
Version 15.5.0
- New features
- Windows: Priority of worker threads can be now modified.
- Bug fixes
- VCM codecs suggested output formats for some unsupported input formats.
Version 15.4.0
- Performance Improvements
- Improved efficienty of QuickTime components.
Version 15.3.0
- Others
Version 15.2.0
- New features
- Added diagnostic log console.
- Bug fixes
- ULRA, ULRG: RGBA/RGB32 output from decoder is broken if encoded with "Optimize for compression ratio" and "Assume interlace video".
Version 15.1.0
- bug fixes
- Mac version do not use assembly language version routine.
Version 15.0.2
- Others
- Changed composition of package a little to take countermeasure against false-positive of anti-virus software.
Version 15.0.1
- Others
- Rebuilt and repackaged to take countermeasure against false-positive of anti-virus software.
Version 15.0.0
- New features
- Add QuickTime components (both encode/decode) for Windows.
- ULY2, ULH2, ULY0, ULH0: Add support of YUV422 input/output on QuickTime components.
- UQY2: Add QuickTime components.
Version 14.2.1
- Bug fixes
- Configuration of codecs is not properly saved even if "Save configuration globally by codec itself" checkbox in "Global Configuration" is cheked.
Version 14.2.0
- Performance Improvements
- UQY2: Add support for multithreading.
Version 14.1.1
- New features
- UQY2: Restriction of video width is relaxed.
Version 14.0.0
- New features
- Add a codec whose internal format is YUV422 10bit. (FourCC: UQY2). Very slow.
- Others
- Changed codec names.
- Changed minimum requirement OS: Windows Vista or later.
Version 13.3.1
- Bug fixes
- Codec crashes when run on non-AVX capable processors.
- Codec crashes when run on systems with more than 32 logical processors.
Version 13.3.0
- Performance Improvements
- ULRG,ULRA: Speed up decoding video that were encoded with "Optimize for compression ratio" option to RGB32/ARGB.
Version 13.2.1
- Bug fixes
- Codec crashes when run on non-SSSE3 capable processors.
Version 13.2.0
- Performance Improvements
- Common: (x64) Speed up decoding.
Version 13.1.0
- Performance Improvements
- ULRG,ULRA,ULY2,ULH2: Speed up encoding from native colorspace if SSSE3 instructions are available.
- ULRG,ULRA,ULY2,ULH2: Speed up decoding video that were encoded with "Optimize for compression ratio" option to native colorspace if SSSE3 instructions are available.
- ULY2,ULH2: Speed up encoding video from RGB formats if SSSE3 instructions are available.
- ULY2,ULH2: Speed up decoding video to RGB formats if SSE4.1 instructions are available.
Version 13.0.1
- Others
Version 13.0.0
- New features
- Add codecs that use BT.709-based colorspace conversion coefficient. (FourCC: ULH2, ULH0)
- Others
- Changed codec names.
- Changed recommended CPU: Nehalem or later.
Version 12.2.1
- Bug fixes
- ULY0: Colorspace conversion routine from/to interlace YUV422 is probably wrong.
Version 12.2.0
- Performance Improvements
- Speed up decoding video that were encoded with "Optimize for decoding speed" option. About 5-10% faster.
- (x64) Speed up decoding video that were encoded with "Optimize for compression ratio" option. About 1% faster.
- ULY2: (x64) Speed up encoding from RGB colorspace About 2% faster.
Version 12.1.0
- Performance Improvements
- ULRG,ULRA,ULY2: Speed up encoding from native colorspace if AVX instructions are available. About 10% faster in case of x86, and about 12% faster in case of x64.
- ULRG,ULRA,ULY2: Speed up decoding video that were encoded with "Optimize for compression ratio" option to native colorspace if AVX instructions are available. About 5% faster in case of both x86 and x64.
Version 12.0.1
- Bug fixes
- Uninstaller failes on Windows Vista or later.
- Common: x64 decoders may crash.
Version 12.0.0
- New features
- Add Media Foundation encoders and decoders. No encode setting dialog.
Version 11.1.1
- Bug fixes
- (Windows) Size (number of bytes) of frame may not be set correctly when encoding and decoding.
Version 11.1.0
- Performance Improvements
- (Mac) Add assembly language version of colorspace conversion routine from RGB to ULY2.
- Common: Speed up decoding a little.
- Common: Speed up encoding on x64 about 10%
- Others
- (Mac) encoded size becomes a little smaller by omitting unnecessary media sample flags.
Version 11.0.0
- New features
- Add QuickTime encoder components for Mac OS X. Encoding from RGB24/ARGB32 are supported. Not very fast. No encode setting dialog.
- Bug fixes
- ULY2: QuickTime decoder may output corrupted data in case of certain width of video and output buffer.
Version 10.2.4
- Others
- (Windows) Installer now displays "before-install" notice.
- (Mac) Report more apropreate codec name to QuickTime.
Version 10.2.3
- Bug fixes
- (Windows) When setting codec configuration to VCM codec object, it returns failure even though it is successful.
- Others
- (Windows) Add "last-resort" .reg file for install troubleshooting.
Version 10.2.2
- Bug fixes
- (Windows) Registration of x86 VCM codec is failed on Vista/XP x64.
Version 10.2.1
- Others
- (Windows) Installer is now Inno Setup based. Single installer is available for both x86 and x64 windows.
Version 10.2.0
- Performance Improvements
- (Mac) Add assembly language version routine. Now as fast as Windows version.
Version 10.1.0
- Performance Improvements
- (Mac) Support multithreading.
Version 10.0.3
- Bug fixes
- (Windows) Did not check width and height of input/output equal.
Version 10.0.2
- Bug fixes
- (Windows) Decoder rarely crashes.
Version 10.0.1
- Bug fixes
- (Windows) If "Save configuration globally by codec itself" in "Global Configuration" is checked, codec crashes at initialization.
- Others
- (Mac) Changed base SDK from 10.6 to 10.5
Version 10.0.0
- New features
- Add QuickTime components for Mac OS X. Decoding to RGB24/ARGB32 are supported. Very slow.
- Others
- Input/output format checking is more accurate.
Version 9.0.3
- Bug fixes
- ULY2: DMO encoder does not accept the output format that is suggested by itself when the input format is not RGB24/32.
- ULY0: DMO encoder does not accept the output format that is suggested by itself when the input format is not RGB24/32.
- Others
- DMO encoders and decoders now does not check some part of input/ouput formats.
Version 9.0.1
- Bug fixes
- DMO decoder returns inconsistent formats when enumerates output formats.
Version 9.0.0
- New features
Version 8.5.2
- Bug fixes
- Codec cannot be used via VCM interface because utv_vcm.dll is installed to wrong directory.
Version 8.5.1
- Bug fixes
- ULY2: Encoder may crushes and/or video may be broken when encoded from RGB (x64)
- Others
- Extract VCM interface from utvideo.dll, into utv_vcm.dll.
Version 8.5.0
- Performance Improvements
- common: Speed up decoding (x86) about 10%.
- common: Speed up decoding (x64). Almost fast as x86 version.
Version 8.4.0
- Performance Improvements
- ULRG: Speed up decoding "Predict left" video to RGB24 and RGB32. 14% for x86, 6% for x64 (if Core 2).
- ULRA: Speed up decoding "Predict left" video to RGBA. 17% for x86, 6% for x64 (if Core 2).
Version 8.3.0
- Performance Improvements
- ULY2: Speed up decoding "Predict left" video to YUY2 and UYVY. About 12% if Core 2.
- ULY0: Speed up decoding "Predict left" video to YV12. About 5% if Core 2.
- Others
- ULY2: Delete support for encoding-from and decoding-to YVYU and VYUY.
- ULY0: Delete support for encoding-from and decoding-to YVYU and VYUY.
Version 8.2.1
- Others
- ULY2: For the safety, set 255 to the field that might be interpreted as alpha channel when decoding.
- ULY0: For the safety, set 255 to the field that might be interpreted as alpha channel when decoding.
Version 8.2.0
- Performance Improvements
- common: Speed up decoding. 20-30% for x86, 20-40% for x64 (if Core 2).
Version 8.1.0
- New features
- Encoder is now able to save configuration globally by encoder itself.
- Encoder is now able to ignore setting of cofiguration from codec client (e.g. editing software).
Version 8.0.0
- New features
- Others
- Only x64 version DLLs are included in x64 version installer.
- x86 version installer is now able to be installed to x64 Windows.
Version 7.1.1
- Others
- Register DLL file with full path name.
Version 7.1.0
- Performance Improvements
- Fix significant performance decrease in Athlon/Phenom-series processors.
Version 7.0.4
- Others
- Changed the way to register codecs again.
Version 7.0.3
- Others
- Changed the way to register codecs.
Version 7.0.2
- Others
- x86 version installer is now unable to be installed to x64 Windows.
- Modified some text.
Version 7.0.1
- Bug fixes
- x64 version installer does not register DLLs properly on some OS environment.
- Others
- Shorten display names of codecs.
Version 7.0.0
- New features
- Add x64 version. Both x64 version DLL and x86 version DLL are included in x64 version installer.
- Others
- DLLs are now installed under System32/SysWOW64 directory instead of Program Files directory.
Version 6.1.0
- New features
- common: Add option to set frame divide count to # of logical processors.
Version 6.0.2
- Others
Version 6.0.1
- Others
- DLL is now statically-linked instead of dynamically-linked.
Version 6.0.0
- New features
- common: Add support for interlace video.
- Bug fixes
- ULY0: Codec may crash if video's height is greater than its width.
Version 5.3.1
- Bug fixes
- ULY0: fixed frame dividing method.
Version 5.3.0
- New features
- ULY0: Add support for YUY2 input when encoding. (but low speed)
- ULY0: Add support for YUY2 output when decoding. (but low speed)
version 5.2.3
- Bug fixes
- common: rarely outputs broken frame when encoding.
Version 5.2.2
- Others
Version 5.2.1
- Others
Version 5.2.0
- New features
- ULY2: Add support for RGB32 input when encoding.
- ULY0: Add support for RGB32 input when encoding. (but low speed)
- ULY0: Add support for RGB32 output when decoding. (but low speed)
Version 5.1.2
- Others
version 5.1.1
- Bug fixes
- ULY0: Size (number of bytes) of image may not be set correctly when decoding. This bug exists only in ULY0.
Version 5.1.0
- New features
- ULY0: Add support for RGB24 input when encoding. (but low speed)
- ULY0: Add support for RGB24 output when decoding. (but low speed)
Version 5.0.0
- New features
- Add codec for YUV420 (FourCC: ULY0).
- Others
- Switch default prediction mode to "Predict left".
- ULY2: Width now must be multiple of two.
Version 4.1.0
- Performance Improvements
- common: Speed up encoding just a little.
- common: Speed up decoding just a little.
Version 4.0.2
- Others
- ULRG: For the safety, set 255 to the field that might be interpreted as alpha channel when decoding.
- Common: Set input effective bit count to output biBitCount field when encoding.
Version 4.0.1
- Others
Version 4.0.0
- New features
- Add codec for RGBA (FourCC: ULRA).
Version 3.8.0
- New features
- common: Add "Predict left" intra-frame prediction method. According to my measurement, compared to existing implementation ("Predict median"), approximately same encoding speed, 10% lower compresstion ratio (10% larger file size) and 50% faster decoding speed (30%+ shorter decoding time).
Version 3.7.0
- Performance Improvements
- common: Speed up decoding. 9% if Core 2.
- ULY2: Speed up encoding from RGB24. 9% if Core 2.
Version 3.6.0
- Performance Improvements
- ULY2: Speed up encoding from RGB24. 42% if Core 2.
Version 3.5.0
- New features
- ULY2: Add support for RGB32 output when decoding. Assembly language version is also available.
- Bug fix
- ULY2: When encoding from RGB24, trash appears on right edge if width is not multiple of four.
Version 3.4.0
- New features
- ULY2: Add support for RGB24 input when encoding. (but low speed)
- Bug fixes
- ULY2: Output vertically flipped frames on some environment when decoding to RGB32, because of ignorance of sign of biHeight.
Version 3.3.1
- Bug fixes
- Common: Encoder crashes with some video editing and/or capture software.
- Others
- Changed title string of configuration dialog.
- Add version string to "About" dialog.
Version 3.3.0
- Performance Improvements
- Common: Speed up decoding. 20% if Core 2.
- Common: Speed up encoding. 8% if Core 2.
- ULY2: Speed up decoding to RGB32. 47% if Core 2, including preceding common speedup.
- Bug fixes
- Common: Do not output error though starting encoding/decoding with format that cannot be processed.
Version 3.2.0
- New features
- ULY2: Add support for RGB32 output when decoding. (but low speed)
- Bug fixes
- ULRG: fixed frame dividing method. Due to this fix, ULRG lost compatibility if frame divide count is not 1.
Version 3.1.0
- New features
- ULY2: Add support for YUYV, YUNV, UYVY, UYNV, YVYU and VYUY.
- ULRG: Add support for RGB32.
- Buf fixes
- ULRG: WMP crashes for ULRG-encoded files.
Version 3.0.0
- Add codec for RGB (FourCC: ULRG).
Version 2.2.0
- Replaced many routines with assembly language version.
Version 2.1.0
- Add support for multithreading.
Version 2.0.0
- Process frames after divided into bands.
Version 1.1.3
First public release
Author's site