SIF Video Codec project was started about 20 years ago as a pure new video compression approach based on human visual cortex model (now known as Feynman Machine). As the results SIF Codec has adaptive bitrate management and in-frame parallelization natively embedded into the core of compression technology.
We are glad to share its latest version for a community here. You can find a follow set of files:
- Direct Show Decoder and VFW Encoder for Windows
- Console Utilities and Libraries for Windows (documentation is included)
- Console Utilities and Libraries for Linux (documentation is included)
here: https://sifcodec.com/downloads
You may use dynamic libraries to embed SIF compression technology into your projects based on non-commercial research license from SIF Codec LLC. SIF Codec architecture is fully independent from any third-party IP rights, including patents and copyrights.
SIF Codec has its own:
- patented texture coding technology
- patented entropy engine (more effective than CABAC)
- original and optimized technology of movement compensation
SIF Codec does not use:
- any loop filtering technologies and have better texture details because of it
- predictors and merge for movement vectors coding
Planned further improvements:
- B-frames implementation (right now SIF Codec works in zero latency mode only)
- Further optimization from pure C and SSE to more advanced structures
- Encoder and decoder GPU implementation. Parallelization.
Some technical details:
The main encoding mode of the SIF Codec is the coding with a fix level of visual quality. It is CRF mode analogue, but implemented by new independent methods.
Quality level key: --viz_dist=<arg>
Its values:
0 - loseless mode
<30 - “almost loseless” mode
40 - high level of quality
<70 - acceptable level of quality.
Console encoder (both Win and Linux) input formats: raw file (with or without title).
Windows console encoder can also process AviSynth scripts, including 10 bits and 16 bits input formats. Console encoders can save compressed data to AVI container or in RAW format.
+ Reply to Thread
Results 1 to 16 of 16
-
-
-
sorry, I meant everything is in Russian except that license txt,
sure there are command lines and formulas using Latin characters, but all comments are in Russian, .... , but anyway, no pressure -
-
-
I would guess that "raw file (with title)" may mean Y4M...
Code:src_filename - .yuv, .y4m, .avs Поддерживаются AVS скрипты с выходным цветовыми пространствами YV12, P010, 420p10, 420p16. Обычные AVI файлы не поддерживаются. Также поддерживаются y4m файлы и рав файлы в форматах YV12, I420, 420p10, 420p16
users currently on my ignore list: deadrats, Stears555, marcorocchini -
Yes, it .y4m
We have translated part of the documentation
Tomorrow we will translated everything
Sif1_Enc.exe src_filename <options> -o dst_filename
src_filename - .yuv, .y4m, .avs
We support AVS scripts with output color spaces YV12, P010, 420p10, 420p16.
We don't support regular AVI files
We also support y4m files and raw files YV12, I420, 420p10, 420p16
dst_filename - .avi, raw
We support recording to avi container and pure RAW stream recording
//.mkv - we plan to support this container in the future
We record all files without .avi extension as RAW stream by default
-o <arg>, --output=<arg> Output filename
-p <arg>,--preset=<arg> // One present only for now
def
-w <arg>, --width=<arg> Frame width
-h <arg>, --height=<arg> Frame height
--input_res=<arg> (Frame width)x(Frame height)
--fps=<arg> Stream frame rate (rate/scale)
-t <arg>, --threads=<arg> Max number of threads to use: 0- auto, max - 32
--yv12 Input file is YV12
--i420 Input file is I420 (default)
--i420p10 Input file is 10 bit I420
--i420p16 Input file is 16 bit I420
--avi_outp Output stream written in AVI container
--raw_outp RAW output stream
--bit-depth=<arg> Bit depth for codec
8 //(default)
10
12
-c <arg> --comp_mode=<arg> // encoding mode
qv_b //(default) Quality based one pass encoding mode
vbr_1_p // First pass of two passes mode
vbr_2_p // Second pass of two passes mode
vbr_all_p // Two passes of two passes mode
vbr_all_3_p // Three passes of high accuracy mode
abr // Limited bitrate mode ABR
cbr // Fixed bitrate mode CBR
--viz_dist=<arg> // quality levle for corresponding modes 0 - 150 or more. default=40
--out_bitrt=<arg> // target bitrate in kilobits. 1-10000 or higher. default=500
--first_pass_mode=<arg> // Mode of speed of the first pass
slow // First pass with setting for second one
medium // First pass with fast settings
fast // (default) - First pass with fast settings and half image size
--vbr_stat_f=<arg> // Path to statistics file - y default .\sif_stat.sta
--rc_buf_s=<arg> // Bitrate control buffer size in seconds. default=8
--keyint=<arg> // Interval between reference frames. By default 300. Inter frame psychovisual optimization off - 0.
--entropy_mode=<arg> // Entropy encoder mode.
auto // (default) - Automatic recognition
1_threads // Max 1 thread
2_threads // Max 2 threeads
4_threads // Max 4 threads
8_threads // Max 8 threads
--me_mode=<arg> // Main movement detector mode
ultrafast
faster
fast
standard (default)
slow - unrealised
slower - unrealised
--sub_me_mode=<arg> // Movement vector search and tuning engine mode
fastest
fast (default)
medium - unrealised
slow - unrealised
--no_q_pel // Turn off 1/4 pixel compensation. On by default
--no_chroma_me // Turn off color information usage for movement searching
--no_ref_modul // Turn off modulation of quantization for reference frames
--ref_num=<arg> // Number of reference frames. Default = 5.
--sif_tr_mode=<arg> // SIF transformation engine mode
fast
medium (default)
slow - unrealised
--color_scaling=<arg> // Color compression default=32
--quantizaton_scaling=<arg> // Quantization compression default=64
--limit=<arg> // Stop encoding after n input frames
--collor_space=<arg> // Setup color space type for encoding video
BT_601
BT_709 (default)
SMPTE_170
SMPTE_240
BT_2020
--video_transfer_function=<arg> // Setup a brightness transmission curve type
BT_709
22_240M
BT_2020_const
BT_2020
BT_2084
HLG
--video_primaries=<arg> // Setup color space type for an original file
BT_709
BT_470_2_SysM
BT_470_2_SysBG
BT_2020
--nominal_range=<arg> // Setup brightness values range
Full
Limited
--interlaced=<arg> // Interlace video compression mode (only 420 - 8 bytes input format is supported now)
progressive
upper_field_first // PAL
lower_field_first // NTSC -
so, no pipe support?
users currently on my ignore list: deadrats, Stears555, marcorocchini -
It must be support stdin input and stdout output with "-" instead of a file name, but it was never tested
-
Code:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "F:\TestClips&Co\files\test.avi" -an -sn -pix_fmt yuv420p -vsync 0 -f yuv4mpegpipe - | "E:\SIF1_2_03_Win_tools_lib\ConsoleEnc.exe" - --avi_outp "E:\Output\sif.avi"
Code:ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "F:\TestClips&Co\files\test.avi" -an -sn -pix_fmt yuv420p -vsync 0 -f yuv4mpegpipe - | "E:\SIF1_2_03_Win_tools_lib\ConsoleEnc.exe" - -o "E:\Output\sif.avi"
So: pipe input does work (nice), '--avi_outp' does not.
Code:e:\SIF1_2_03_Win_tools_lib\ConsoleDec.exe e:\Output\sif.avi -o e:\Output\yuv.y4m
using:
Code:ffplay.exe e:\Output\yuv.y4m
-> seems like I'm doing something wrong (attached the sif.avi and the input test.avi)
Cu Selurusers currently on my ignore list: deadrats, Stears555, marcorocchini -
"E:\SIF1_2_03_Win_tools_lib\ConsoleEnc.exe" - --avi_outp "E:\Output\sif.avi"
It skipped -o key
correct
"E:\SIF1_2_03_Win_tools_lib\ConsoleEnc.exe" - --avi_outp -o "E:\Output\sif.avi"
key --avi_outp only forces the container type, but does not specify the output file
And stdout work only in RAW output because avi is not an stream container
it only possible work in RAW mode
"E:\SIF1_2_03_Win_tools_lib\ConsoleEnc.exe" - --raw_outp -o "-"
End only raw input if "-" select
Correct string
"E:\SIF1_2_03_Win_tools_lib\ConsoleEnc.exe" - --input_res=640x352 --fps=25/1 -o "E:\Output\sif.avi"
Y4M header detection does not work in stdinput mode. This will be fixed. -
Fixed. It now always checks the Y4M signature.
check can be disabled by key --raw_inp -
Thanks, encoding from y4m pipe and decoding to y4m seems to work now.
Cu Selurusers currently on my ignore list: deadrats, Stears555, marcorocchini -
New version available
https://sifcodec.com/downloads
Complete translation of all documentation
And
ConsoleEnc : Support read y4m data from stdin
ConsoleDec :Support write y4m data to stdout
Similar Threads
-
SMPTE colorbar generation formula
By colibri in forum Newbie / General discussionsReplies: 27Last Post: 23rd Dec 2019, 21:18 -
FFmpeg Multi Generation
By chris319 in forum Video ConversionReplies: 4Last Post: 23rd May 2018, 02:53 -
The best codec currently available?
By sophisticles in forum Video ConversionReplies: 9Last Post: 1st Nov 2017, 08:17 -
Recommend 4K codec?
By jfharper in forum Video ConversionReplies: 7Last Post: 26th May 2017, 13:56 -
DivX10 codec?
By kyrcy in forum Newbie / General discussionsReplies: 3Last Post: 17th Aug 2016, 13:51