Skip to content

Commit 21b2dd8

Browse files
Merge branch 'master' into develop
2 parents c5fbb8f + 377d35c commit 21b2dd8

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

README.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,27 @@
11
# H264Sharp
2+
23
Cisco's OpenH264 Native facade/wrapper for .Net with highly optimised SIMD color format conversion support. It is very suitable for realtime streaming over network.
34

45
SIMD color format converters are up to 2.9x faster than OpenCV implementation.
56

67
- Cross Platform
78
- Plug&Play
89
- Tested on .NetFramework and Net(up to 8), Windows & Linux & Android (x86 and Arm).
10+
911
- No memory leaks or GC pressure.
1012
- Compatible with OpenCV.(i.e. OpenCVsharp)
1113

1214
Cisco Openh264 is chosen for its unbeatible performance compared to other available software encoders. A paper involving performance metrics can be found here:
1315
<br>https://iopscience.iop.org/article/10.1088/1757-899X/1172/1/012036/pdf</br>
1416

17+
1518
Library consist of native dll which acts as OpenH264 wrapper/facade and color format converter (YUV <-> RGB,BGR,RGBA,BGRA)
16-
<br/>Converters are vectorised(AVX2 or SSE for x86, Neon for Arm) and can be configured for parallelisation.
19+
1720

1821
C# library is .Net standard wrapper library for this dll and performs PInvoke to handle transcoding.
1922
## Nuget
2023

24+
2125
Install the NuGet package. All native dependencies should be automatically installed and resolved.
2226
- Tested on Windows, Linux, Linux ARM, Android MAUI app(x86 on emulator, Arm64 on Pixel phone).
2327

@@ -26,6 +30,7 @@ Binaries also provided on [Relases](https://github.com/ReferenceType/H264Sharp/r
2630
H264Sharp
2731
<br>[![NuGet](https://img.shields.io/nuget/v/H264Sharp)](https://www.nuget.org/packages/H264Sharp)
2832

33+
2934
H264SharpBitmapExtentions
3035
<br>[![NuGet](https://img.shields.io/nuget/v/H264SharpBitmapExtentions)](https://www.nuget.org/packages/H264SharpBitmapExtentions)
3136

@@ -77,7 +82,9 @@ static void Main(string[] args)
7782
```
7883
Bitmaps are not included on library to keep it cross platform.
7984
An extention library is provided for windows.
85+
8086
For the bitmaps and other image container types, an extention library is provided.
87+
8188
``` c#
8289
RgbImage rgb = new RgbImage(H264Sharp.ImageFormat.Rgb, w, h);
8390
Bitmap bmp = rgb.ToBitmap();
@@ -231,15 +238,18 @@ Neon is only active on arm and does nothing on x86 systems.
231238

232239
```c#
233240
var config = Converter.GetCurrentConfig();
241+
234242
config.EnableSSE = 1;
235243
config.EnableNeon = 1;
236244
config.EnableAvx2 = 1;
237245
config.NumThreads = 4;
246+
238247
config.EnableCustomThreadPool = 1;
239248
Converter.SetConfig(config);
240249

241250
// Or like..
242251
Converter.SetOption(ConverterOption.NumThreads, 8);
252+
243253
```
244254
#### Converter Bechmarks
245255
H264Sharp conversion operations are up to 2.9x faster than OpenCV implementations.
@@ -283,7 +293,9 @@ There are many possible options and they are commented on the enum fields as wel
283293

284294

285295
# Example App
296+
286297
A simple example WPF application is provided. This app emulates advanced use cases for the lossy transfers(loss&jitter) leveraging LTR references.
298+
287299
here you can explore:
288300
- Advanced Setup and their effects.
289301
- Using LTR references and loss recovery.

0 commit comments

Comments
 (0)