Re: [FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper

2018-12-23 Thread myp...@gmail.com
On Sun, Dec 23, 2018 at 12:57 AM Jean-Baptiste Kempf  wrote:
>
> Hello,
>
> On Sat, 22 Dec 2018, at 13:02, Carl Eugen Hoyos wrote:
> > > HEVC-compliant encoder library core that achieves excellent 
> > > density-quality
> >
> > I don't find it ideal that FFmpeg git claims that an Intel encoder
> > does something "excellent" - unrelated to our actual opinion.
> > Please rephrase.
>
> My understanding from the testing we've done, is that SVT is a good encoder 
> for live cases, but clearly not excellent in all cases, notably the VOD 
> scenarios that are often used with FFmpeg.
For this part, SVT-HEVC will public a white paper (Now the white paper
on the internal legal review status, after the review finish, will)
>
> > > tradeoffs, and is highly optimized for Intel Xeon Scalable Processor and
> >
> > (and while there, also remove / change "highly optimized")
>
> Yep, mention AVX-512, not the marketing terms.
Will update as the comments :)
>
> > > Xeon D processors. Intel open source SVT-HEVC encoder in:
> > > https://github.com/intel/SVT-HEVC.
> >
> > > This wrapper work with SVT-HEVC master branch, more information can get
> > > from https://github.com/intel/SVT-HEVC/blob/new_api/ffmpeg_plugin/.
> >
> > This is irrelevant:
> > If SVT is another example of a library that does not plan some kind
> > of api stability, we should not merge your patch.
> > If api stability is to be expected, the sentence is not necessary.
>
> API will be stable, from my understandings, but not soon.
>
>
I've talked with the SVT-HEVC guys, I think the API is a stable status
now. (Maybe have small change if adds/export some new features, but in
this type case, SVT-HEVC will update the version, so we can cover this
in the FFmpeg wrappers to check the SVT-HEVC version).
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper

2018-12-23 Thread Paul B Mahol
On 12/23/18, Helmut K. C. Tessarek  wrote:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA512
>
> On 2018-12-22 23:35, Carl Eugen Hoyos wrote:
>>> API will be stable, from my understandings, but not soon.
>>
>> If this is correct - I have no idea - the patch should be sent
>> again once the api is believed to be stable.
>
> In that case I'm wondering why libaom has a wrapper in ffmpeg. Just a
> few days ago they broke the wrapper.
>
> What about dav1d? Yes, developers said it shouldn't be used yet, but
> ffmpeg still has a wrapper that had to be changed several times already.
>
> I don't have a proplem that this has happened, but telling someone
> that an API has to be stable while there are clearly 3rd party libs,
> which APIs are not stable, in ffmpeg is rather a joke - not to say
> slightly inconsistent.

Completely agree, we should remove unstable wrappers.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper

2018-12-23 Thread Helmut K. C. Tessarek
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

On 2018-12-22 23:35, Carl Eugen Hoyos wrote:
>> API will be stable, from my understandings, but not soon.
> 
> If this is correct - I have no idea - the patch should be sent
> again once the api is believed to be stable.

In that case I'm wondering why libaom has a wrapper in ffmpeg. Just a
few days ago they broke the wrapper.

What about dav1d? Yes, developers said it shouldn't be used yet, but
ffmpeg still has a wrapper that had to be changed several times already.

I don't have a proplem that this has happened, but telling someone
that an API has to be stable while there are clearly 3rd party libs,
which APIs are not stable, in ffmpeg is rather a joke - not to say
slightly inconsistent.

Cheers,
  K. C.
-BEGIN PGP SIGNATURE-

iQIzBAEBCgAdFiEE191csiqpm8f5Ln9WvgmFNJ1E3QAFAlwfmKsACgkQvgmFNJ1E
3QD7axAAuE1BN6AD205taTQE81wDbxiAVZwewQcPf/45TU/FnlUHKcU/CUnEgM0H
wcyvbMSXjjJfVEHrUzHUohOKlQTwVwGyKDvSwaGTU4cjkPFjO4/ZTzlYHPU6QlvN
vFgv70SG1kVNQ7UwxZD5Jd2jbnUCmxwiKRq7jkjf3RpK9/yC4i0X1SF51n7JwliI
BFHuTSYSEQ/XY66bdnQEJq6McA75wY4Z8s+zWTF+69qN5vrDfZt5/fhZG6L0ttpR
ViCiNGB9CG/aPBS2s2C6oOHBx7bfSCdj5QPrIB80YeifUvTXXJpGJ0gHBosljisW
yoDR259FcEh/c4ApN0DV7bwptOuILyJI5wTntbT2b8YZxdjyoX3shUTeixtRHnhA
fRemFIcOXa5pU0aaTJUxtaBsAcmla58qowmU+mujPYakg/XAVoxDVG3lqIt9/Dkj
d8Q+sheuH3z9HemRAG6ddnDhneqQmarcUEma/vVzZKTcWBfW4MXzdR2UWoLS+XhP
6u4C0/uCSOUlqI8dN+FAD9JZODN/Bm/+ybI7A8eLTuzlb6U1Mqwy44pzkgn70YrZ
vZ6aEzfyKE9NPpYCkKwHkitRrQtM0jqgN6Ew/tT2xOpqiq0Y8vXV8cbiYxvsMVks
PCme8HEZ8X0/j/pP5KeapXotbSfK+nQpe7gOOVCbH6d/H83ooCo=
=66Eo
-END PGP SIGNATURE-
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper

2018-12-22 Thread Carl Eugen Hoyos
2018-12-22 17:57 GMT+01:00, Jean-Baptiste Kempf :

> On Sat, 22 Dec 2018, at 13:02, Carl Eugen Hoyos wrote:

>> > This wrapper work with SVT-HEVC master branch, more information can get
>> > from https://github.com/intel/SVT-HEVC/blob/new_api/ffmpeg_plugin/.
>>
>> This is irrelevant:
>> If SVT is another example of a library that does not plan some kind
>> of api stability, we should not merge your patch.
>> If api stability is to be expected, the sentence is not necessary.
>
> API will be stable, from my understandings, but not soon.

If this is correct - I have no idea - the patch should be sent again
once the api is believed to be stable.

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper

2018-12-22 Thread Jean-Baptiste Kempf
Hello,

On Sat, 22 Dec 2018, at 13:02, Carl Eugen Hoyos wrote:
> > HEVC-compliant encoder library core that achieves excellent density-quality
> 
> I don't find it ideal that FFmpeg git claims that an Intel encoder
> does something "excellent" - unrelated to our actual opinion.
> Please rephrase.

My understanding from the testing we've done, is that SVT is a good encoder for 
live cases, but clearly not excellent in all cases, notably the VOD scenarios 
that are often used with FFmpeg.

> > tradeoffs, and is highly optimized for Intel Xeon Scalable Processor and
> 
> (and while there, also remove / change "highly optimized")

Yep, mention AVX-512, not the marketing terms.

> > Xeon D processors. Intel open source SVT-HEVC encoder in:
> > https://github.com/intel/SVT-HEVC.
> 
> > This wrapper work with SVT-HEVC master branch, more information can get
> > from https://github.com/intel/SVT-HEVC/blob/new_api/ffmpeg_plugin/.
> 
> This is irrelevant:
> If SVT is another example of a library that does not plan some kind
> of api stability, we should not merge your patch.
> If api stability is to be expected, the sentence is not necessary.

API will be stable, from my understandings, but not soon.


-- 
Jean-Baptiste Kempf -  President
+33 672 704 734
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper

2018-12-22 Thread Carl Eugen Hoyos
2018-12-22 10:15 GMT+01:00, Jun Zhao :
> The Scalable Video Technology for HEVC Encoder (SVT-HEVC Encoder) is an

> HEVC-compliant encoder library core that achieves excellent density-quality

I don't find it ideal that FFmpeg git claims that an Intel encoder
does something "excellent" - unrelated to our actual opinion.
Please rephrase.

> tradeoffs, and is highly optimized for Intel Xeon Scalable Processor and

(and while there, also remove / change "highly optimized")

> Xeon D processors. Intel open source SVT-HEVC encoder in:
> https://github.com/intel/SVT-HEVC.

> This wrapper work with SVT-HEVC master branch, more information can get
> from https://github.com/intel/SVT-HEVC/blob/new_api/ffmpeg_plugin/.

This is irrelevant:
If SVT is another example of a library that does not plan some kind
of api stability, we should not merge your patch.
If api stability is to be expected, the sentence is not necessary.

> For SVT-HEVC build, you can switch the branch to master, then run:

This should not be part of the commit message here.

[...]

Please either:
Add some quality metrics in the email.
Or:
Explain that the license (and the fact that the encoder is not terrible)
is sufficient reason to merge.

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH V5 0/2] Add libsvt HEVC encoder wrapper

2018-12-22 Thread Jun Zhao
The Scalable Video Technology for HEVC Encoder (SVT-HEVC Encoder) is an 
HEVC-compliant encoder library core that achieves excellent density-quality 
tradeoffs, and is highly optimized for Intel Xeon Scalable Processor and 
Xeon D processors. Intel open source SVT-HEVC encoder in: 
https://github.com/intel/SVT-HEVC.

This wrapper work with SVT-HEVC master branch, more information can get 
from https://github.com/intel/SVT-HEVC/blob/new_api/ffmpeg_plugin/.

For SVT-HEVC build, you can switch the branch to master, then run:

1. mkdir build && cd build && cmake ../ && make -j `nproc` && sudo make install
 
in the directory. (Yes, SVT-HEVC now support the full CMake style's 
build/install 
after the commit 
https://github.com/intel/SVT-HEVC/commit/f28d492971ef58dc655ccdc7d819cc18ddb45a2f)

For FFmpeg build. need to:
1. export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib and
   export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig before
   enable SVT-HEVC in FFmpeg.
2. in FFmpeg part, need to "--enable-libsvthevc" options in config step.

This patches based on Zhengxu, huang/hassene's hard work.

SVT-HEVC encoder have some interesting features compare with the exsting HEVC 
encoder.

- Multidimensional parallelism
a). Picture-based parallelism
b). Segment-based parallelism (scales over many CPU cores)
c). Will support tile-based parallelism soon

- Human Visual System(HVS)-optimized classification for
a). Data-efficient processsing
b). Computationally efficient partitioning and mode decision
c). Higher coding efficiency
 
- Resource adaptive scalability
a). Speed up factor vs HM 16 about 70 times (4K/60fps content, 
SVT-HEVC enable subjective quality mode with preset setting 
with M0(highest quality))
b). Outperformance the x265 encoder in CQP mode 

Some performance data:
- Real-time encoding of up to 1x 8Kp60/10-bit streams on the 
  Platinum 8180 with preset M11/subjective quality mode

- Real-time encoding of up to 2x 8Kp50/10-bit streams on the 
  Platinum 8180 with preset M12/subjective quality mode

- Real-time encoding of up to 4x 4Kp60/10-bit streams on the 
  Gold 6148 with preset M12/subjective quality mode

- Real-time encoding of up to 6x 4Kp60/10-bit streams on the 
   Platinum 8180 with preset M12/subjective quality mode

More performance/quality data will be public as a white paper as soon 
after the internal review finished.

V5: - Change the config options (didn't need to enable-gpl for BSD+Patent,
  it's can compatible with LGPL2+, thanks Xavier correct this part),
  now just need to "--enable-libsvthevc" option.
- Refine the code as the FFmpeg community's comments
  (https://patchwork.ffmpeg.org/patch/11347/, Tks Mark great review)
- Add force_idr option.
- Update the docs part as current implement (Tks Gyan review the docs part) 


V4: - Add more options support and update related docs (profile/aud/tile/...)
- Rebase the docs in general.texi based on Gyan's review
- Refine the encoder.texi part as Gyan's suggestion

V3: - Merge Changelog patch to new wrapper(Tks Moritz/Carl's review)

V2: - Refine the error handle (Tks Steven/James's review).
- Add docs part (Tks Steven/Moritz's review).
- Use named parameters in options.
- Follow FFmpeg coding style and Changelog.

V1: - Add libsvt hevc encoder wrapper and a Changelog entry.

Jun Zhao (2):
  lavc/svt_hevc: add libsvt hevc encoder wrapper.
  doc: Add libsvt_hevc encoder docs

 Changelog|1 +
 configure|4 +
 doc/encoders.texi|  145 +
 doc/general.texi |   15 ++
 libavcodec/Makefile  |1 +
 libavcodec/allcodecs.c   |1 +
 libavcodec/libsvt_hevc.c |  526 ++
 7 files changed, 693 insertions(+), 0 deletions(-)
 create mode 100644 libavcodec/libsvt_hevc.c

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel