All Projects → ksvc → Ks265codec

ksvc / Ks265codec

ks cloud hevc(h265) encoder decoder test and description

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Ks265codec

urlpack
Pure JavaScript toolkit for data URLs (MessagePack, Base58 and Base62)
Stars: ✭ 51 (-73.44%)
Mutual labels:  encoder, decoder, codec
android-opus-codec
Implementation of Opus encoder and decoder in C++ for android with JNI
Stars: ✭ 44 (-77.08%)
Mutual labels:  encoder, decoder, codec
schifra
C++ Reed Solomon Error Correcting Library https://www.schifra.com
Stars: ✭ 28 (-85.42%)
Mutual labels:  encoder, decoder, codec
Screen Recorder Ffmpeg Cpp
*Multimedia project* A screen recording application to capture your desktop and store in a video format. Click here to watch the demo
Stars: ✭ 98 (-48.96%)
Mutual labels:  encoder, codec
Alfalfa
Purely functional video codec, used for ExCamera and Salsify
Stars: ✭ 1,164 (+506.25%)
Mutual labels:  decoder, encoder
Wx Voice
Convert audio files between Tencent apps (Weixin / Wechat, QQ) and Silk codec with other general formats such as MP3 and M4A
Stars: ✭ 93 (-51.56%)
Mutual labels:  decoder, encoder
Reed Solomon
Reed Solomon BCH encoder and decoder
Stars: ✭ 57 (-70.31%)
Mutual labels:  decoder, encoder
Base62
Base62 encoder and decoder for arbitrary data
Stars: ✭ 141 (-26.56%)
Mutual labels:  decoder, encoder
Fuif
Free Universal Image Format
Stars: ✭ 115 (-40.1%)
Mutual labels:  decoder, encoder
Ffmediatoolkit
FFMediaToolkit is a cross-platform video decoder/encoder library for .NET that uses FFmpeg native libraries. It supports video frames extraction, reading stream metadata and creating videos from bitmaps in any format supported by FFmpeg.
Stars: ✭ 156 (-18.75%)
Mutual labels:  decoder, encoder
Irremoteesp8266
Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/
Stars: ✭ 1,964 (+922.92%)
Mutual labels:  decoder, encoder
Polar 3gpp Matlab
Matlab simulations of the encoder and SCL decoder for the New Radio polar code from 3GPP Release 15
Stars: ✭ 67 (-65.1%)
Mutual labels:  decoder, encoder
Iced
Blazing fast and correct x86/x64 disassembler, assembler, decoder, encoder for .NET, Rust, Python, JavaScript
Stars: ✭ 1,102 (+473.96%)
Mutual labels:  decoder, encoder
Digital video introduction
A hands-on introduction to video technology: image, video, codec (av1, vp9, h265) and more (ffmpeg encoding).
Stars: ✭ 12,184 (+6245.83%)
Mutual labels:  h265, codec
Ffjpeg
a simple jpeg codec.
Stars: ✭ 58 (-69.79%)
Mutual labels:  decoder, encoder
Bbwebimage
A high performance Swift library for downloading, caching and editing web images asynchronously.
Stars: ✭ 128 (-33.33%)
Mutual labels:  decoder, encoder
Silk V3 Decoder
kn007's blog
Stars: ✭ 1,832 (+854.17%)
Mutual labels:  decoder, encoder
Wav
Battle tested Wav decoder/encoder
Stars: ✭ 139 (-27.6%)
Mutual labels:  decoder, encoder
Salsanext
Uncertainty-aware Semantic Segmentation of LiDAR Point Clouds for Autonomous Driving
Stars: ✭ 153 (-20.31%)
Mutual labels:  decoder, encoder
Wxinlineplayer
🤟Super fast H.264/H.265 FLV player
Stars: ✭ 873 (+354.69%)
Mutual labels:  decoder, h265

KSC265codec(v2.6.1.3)

It should be noted that, the libraries used in our ios/andriod demos have expiration time.

ENCODER

Usage: command line examples

AppEncoder_x64 -i p_3840x2160_50.yuv -preset ultrafast/veryfast/slow/veryslow -latency offline -wdt 3840 -hgt 2160 -fr 50 -rc 1 -br 20000 -iper 128 -b test.265
AppEncoder_x64 -i p_3840x2160_50.yuv -preset ultrafast/veryfast/slow/veryslow -latency offline -wdt 3840 -hgt 2160 -fr 50 -rc 0 -qp 27 -iper 128 -b test.265
AppEncoder_x64 -i p_3840x2160_50.yuv -preset ultrafast/veryfast/slow/veryslow -latency offline -wdt 3840 -hgt 2160 -fr 50 -rc 3 -crf 24 -iper 128 -b test.265

Basic parameters:

-preset [preset_value],

which specifies the encoding speed by the character string [preset_value], among strings of "superfast", "veryfast", "fast", "medium", "slow", "veryslow" and "placebo".

-latency [latency_value],

which specifies the encoding latency by the character string [lactency_value], among strings of "zerolatency", "livestreaming", "offline". Note that, in the presets of ultrafast~veryfast, the latency under "livestreaming" and "offline" are the same.

-i [input_filename],

which specifies the address of the input YUV file in 4:2:0 sampling format by a character string [input_filename].

-wdt [width],

which specifies the image width of the input video by a positive integer value [width].

-hgt [height],

which specifies the image height of the input video by a positive integer value [height].

-fr [framerate],

which specifies the frame rate of the input video by a positive integer value [framerate].

-iper [intraperiod],

which specifies the maximum distances between consecutive I pictures by a positive integer value [intraperiod].

-rc [rctype],

which specifies the rate control type by the positive integer value [rctype] valuing among values 0(fixed qp), 1(cbr), 2(abr) and 3(crf). There are four cases:

  • -br [bitrate] should be followed. If [rctype] equals to 1 or 2, a parameter -br [bitrate] should be followed and specifies the target encoding bit-rate by the positive value [bitrate] (kbps,kilo bit rate per second).
  • -qp [qp_value] should be followed. If [rctype] equals to 0, a parameter -qp [qp_value] should be followed and specifies the target encoding quantization parameter by the positive value [qp_value] ranging from 0 to 51.
  • -crf [crf_value] should be followed. If [rctype] equals to 3, a parameter -crf [crf_value] should be followed and specifies the target crf parameter by the positive value [crf_value] ranging from 0 to 51.

-b [stream_filename],

which specifies the address of the output stream file in HEVC/H.265 format by a character string [stream_filename]. Default: no stream is output.

Optional parameters:

-v or -V [version],

which is utilized to print the version and copyright of the encoder.

-psnr [psnrcalc],

which specifies psnr calculation method by a non-negative value [psnrcalc], and

  • 0 (as a default value) means disabling psnr calculation,
  • 1 means enabling psnr calculation and outputing the overall psnr result.
  • 2 means enabling psnr calculation and outputing psnr info for each frame.

-o [reconstructYUV],

which specifies the address of the reconstrcuted yuv file in 4:2:0 format by a character string [reconstructYUV]. Default: no reconstructed YUV file is output.

-frms [frame_no],

which specifies the number of frames to be encoded for the input video by a positive integer value [frame_no]. Default: [frame_no] = -1, when all input frames are encoded.

-threads [thread_no],

which specifies the number of threads used to encode the input video by a non-negative value [thread_no]. Default: [thread_no] = 0, when all available threads can be utilized.

-bframes[value1], -vbv-maxrate [value2] , -vbv-bufsize[value3],

which specifies similar meanings as similar values defined in x264

DECODER

Usage: command line examples

AppDecoder_x64.exe -b test.265 -o test.yuv -threads 2

Basic parameters:

-v or -V [version]

which specifies the decoder version and copyright.

-b [bitstream],

which specifies input bit-stream file by a character string [bitstream].

Optional parameters:

-o [output],

which specifies the decoded yuv file name by a character string [output].

-threads [threadnum],

which specifies the number of threads used for decoding process by a non-negative value [threadnum]. Default: [threadnum] = 0, when all available threads can be utilized.

Performance of decoder

KSC265 decoder is compared with openHEVC in ffmpeg on [email protected], [email protected] and x86 platforms.

decoding speed
( ksc265inFFmpeg / openHEVCInFFmpeg)
iOS
(ipad mini2)
Andriod
(VIVOxplay5a)
PC
(E5-2690 v3 @ 2.60GHz)
1 thread 2.90 2.85 2.11
full threads 2.69 2.99 3.89

On average, as above table shows, KSC265 decoder can achieve more than 2/2.5 times the speed of openHEVC in ffmpeg on x86/ARM, and details can be found in the excels for decoding performance. Moreover, as following table shows, the decoding speed of KSC265 now can well support the [email protected] applications.

decoding speed of ksc265inFFmpeg
(in frames per second)
iOS
(ipad mini2)
Andriod
(VIVOxplay5a)
PC
(E5-2690 v3 @ 2.60GHz)
1920x1080 @ 1thread 32.06 32.94 177.19
1280x720 @ 1thread 77.88 89.60 346.24
1920x1080 @ full threads 51.13 90.44 939.25
1280x720 @ full threads 120.20 187.16 1976.24

Performance of encoder

KSC265 encoder is firstly compared with X265-v2.4, X264 and vp9 on [email protected]@4threads using following parameters:

x264.exe -o out.264 BQSquare_416x240_60.yuv --input-res 416x240 --preset [superfast|veryfast|slow|placebo] --fps [framerate] --profile high --aq-mode 0 --no-psy --psnr  --bitrate [btrNumber] --threads 1/0 --keyint [framerate * 10] --frames 1000000
AppEncoder_x64.exe -b out.265 -i BQSquare_416x240_60.yuv -preset [veryfast|slow|veryslow] -threads 1/0 -psnr 2 -rc 1 -br [btrNumber] -frms 1000000 -iper [framerate * 10]
x265.exe -o out.265 --input BQSquare_416x240_60.yuv --input-res 416x240 --preset [ultrafast|ultrafast|slow|veryslow] --fps [framerate] --aq-mode 0 --no-psy-rd --no-psy-rdoq  --psnr  --bitrate [btrNumber] --frame-threads [1|0] --no-wpp/--wpp --keyint [framerate * 10] --frames 1000000
vpxenc.exe --codec=vp9 --passes=1 --[rt|goog|best] --fps=[framerate]/1 --i420 --end-usage=vbr --target-bitrate=[btrNumber] --kf-max-dist=[framerate * 10] --cpu-used=8 --threads=[1|4] --psnr -w 416 -h 240 -o out.vp9 BQSquare_416x240_60.yuv --frame-parallel=0

Then on test sequences of JCTVC CLASS-A ~ CLASS-E, and one class of game [email protected], compared to x264(20161020), x265-v2.4 and vp9 in the speed form of encoded frames per second (fps), the average performance of KS265 can be summarized by the follows.

KSC265 vs. X264 KSC265 vs. X264 KSC265 vs. X265 KSC265 vs. X265 KSC265 vs. vp9 KSC265 vs. vp9
full-thread comparisons Bitsaving @same quality Speedup @same quality Bitsaving @same quality Speedup @same bitrate Bitsaving @same quality Speedup @same bitrate
RealTime+ 43.7% -5.4% 26.0% 212.6% 30.5% 147.9%
RealTime 41.2% 8.9% 34.5% 123.2% 38.0% 75.5%
Transcode 36.2% -5.1% 23.7% 199.1% 32.6% 179.0%
Best Ratio 35.3% 83.3% 10.9% 84.1% 23.1% 778.0%

Secondly, then on test sequences of JCTVC CLASS-A ~ CLASS-E, and one class of showself [email protected], compared to x264(20161020), x265-v2.4 and vp9 in the speed form of encoded frames per second (fps), the average performance of KS265 on [email protected] and ipad min2 @1thread can be summarized by the follows.

Andriod&iOS Andriod iOS
full-thread comparisons Bitsaving @same quality Speedup @same quality Speedup @same quality
superfast 43.9% -4.1% 6.3%
veryfast 43.4% -2.2% 1.2%
fast 38.0% 7.3% 4.7%
medium 36.2% 4.8% 7.1%

The details are described in the excel document.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].