Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > High Efficiency Video Coding (HEVC)

Reply
 
Thread Tools Search this Thread Display Modes
Old 30th November 2012, 01:02   #1  |  Link
benwaggoner
Moderator
 
Join Date: Jan 2006
Location: Portland, OR
Posts: 4,750
Available HEVC/H.265 test encoders

My curiousity has gotten too high, and I want to make some HEVC / H.265 test clips. I'm well aware that there's not any production-caliber implementation yet, but I'd like to try the best of what I could get my hands on.

Anyone done any testing that can make any suggestions? There's always compiling the reference encoder, of course.
__________________
Ben Waggoner
Principal Video Specialist, Amazon Prime Video

My Compression Book
benwaggoner is offline   Reply With Quote
Old 30th November 2012, 14:29   #2  |  Link
JEEB
もこたんインしたお!
 
JEEB's Avatar
 
Join Date: Jan 2008
Location: Finland / Japan
Posts: 512
I would probably say that the only working'ish implementation at this time is HM, the reference encoder/decoder package. The "x265" project (not really having that much in common with x264) doesn't look like something usable, and prunedtree's encoder was in its very beginnings (not to mention that he has been without internet for some time now because of moving from one continent to another).

Looking at the JCT-VC mailing list, the version of code available in the HM-9.0-dev branch is currently recommended (unlike its name, it is actually what is going to be version 9.1).

Also from the mailing list, the currently known bugs in this version of HM are:
Quote:
Originally Posted by JCT-VC
...
ticket 845 (SAO and multiple slices)

ticket 700 (weighted prediction in Main 10)
Could someone other than the bug reporter have a look at this?

ticket 530 (deblocking filter and chroma QP offsets)
Not sure whether this still applies after recent changes to the spec.
...
I've been meaning to test out HM at some point, but it has mostly stopped around the fact that GOPs' frame type structure has to be static (at least it looks like that in the configuration files), which would mean that the structure would have to be optimized for every clip -- and that I never got an idea on what features currently mismatch and which don't :V . Oh, and I never got to reading too much of the documentation available, but that I should be able to do soon'ish at least.

If anyone has done any extra testing, I'd be happy to hear about it as well.
__________________
[I'm human, no debug]
JEEB is offline   Reply With Quote
Old 30th November 2012, 21:18   #3  |  Link
mp3dom
Registered User
 
Join Date: Jul 2003
Location: Italy
Posts: 1,135
There is also the MainConcept implementation that should be available in (early) 2013.
mp3dom is offline   Reply With Quote
Old 3rd December 2012, 23:03   #4  |  Link
Parabola
Registered User
 
Parabola's Avatar
 
Join Date: Nov 2012
Posts: 41
Quote:
Originally Posted by benwaggoner View Post
My curiousity has gotten too high, and I want to make some HEVC / H.265 test clips. I'm well aware that there's not any production-caliber implementation yet, but I'd like to try the best of what I could get my hands on.

Anyone done any testing that can make any suggestions? There's always compiling the reference encoder, of course.
Hi Ben,

Last summer I ran a test similar to the following:
  1. Download the HEVC anchor bitstreams, e.g. from ftp://ftp.kw.bbc.co.uk/hevc/hm-9.0-anchors/ This means you don't have to run the HM encoder which takes a LONG time.
  2. Decode the bitstreams to YUV using HM decoder
  3. Download the corresponding uncompressed raw sources (sorry don't have link to hand but someone on jct-vc mail list should be able to help you)
  4. Configure x264 with same GOP pattern and similar Qp offsets as used in the anchors. Batch a whole load of constant Qp encodes on some insane performance setting. Go to bed.
  5. Plot PSNR vs log(bpp)... see the goodness of HEVC
  6. Pick out those x264 bitstreams from your batched set that have similar sizes as the corresponding anchor bitstreams. Use AviSynth to set up side-by-side or butterfly comparisions.... see the goodness of HEVC.

This persuaded me that HEVC really had legs and was worth investing more time and money.

-John
__________________
John @
Parabola Research Limited - HEVC conformance and technology
http://www.parabolaresearch.com/
Parabola is offline   Reply With Quote
Old 4th December 2012, 13:40   #5  |  Link
JEEB
もこたんインしたお!
 
JEEB's Avatar
 
Join Date: Jan 2008
Location: Finland / Japan
Posts: 512
HM 9.1 has been released.
Quote:
Originally Posted by JCT-VC
With respect to 9.0, it contains mostly high-level syntax modifications, bug fixes, and a new rate-control algorithm.

Version 9.1 is expected to produce the same R-D performance as 9.0 under common test conditions.

There are still a few things missing in the high-level syntax (such as SEIs) and a few bugs (related to cases that are not commonly tested). We expect to have this fixed in the coming few weeks.

Nevertheless version 9.1 should be complete enough to start the exercise of generating conformance bitstreams.
The last sentence certainly got me quite interested, and thus I embarked on my first tryout of using HM. After converting the VC9 solution for VC10 and compiling the applications (TAppDecoder, TAppEncoder), I was greeted with quite the help message.

After first trying to set settings manually, and being greeted by weird errors ("-f Number of frames to be encoded (default=all)", yet it has to be set) and/or division by zero errors due to my settings (minCuSize ending up as zero and so forth), I just ended up trying with the pre-made encoder_intra_main.cfg configuration file as the base, and actually got it to encode.
Code:
TAppEncoder.exe -c /cygwin/projects/jctvc-hm/cfg/encoder_intra_main.cfg -i zeroma.yuv -fr 24 -wdt 320 -hgt 180 -f 2155 --CroppingMode 1
(it does warning out with "Unhandled argument ignored: `1'" at the end, but otherwise seems to work --
 although CroppingMode 1 seems to have been parsed just fine)
Not that this is much useful, but at least I have some material now to test smarter's libavcodec decoder with (it is intra-only).

Edit: Seems like smarter's libavcodec WIP decoder only supported stuff up until HM 8.2, so that was completely a no-go. That said, a French team of students he has been in contact with seem to have made it at least somewhat HM 9.0 compatible, with work being made to make it more capable overall. This version seems to actually be able to decode some of the intra frames in my stream correctly. This is quite nice, even at such an early stage
__________________
[I'm human, no debug]

Last edited by JEEB; 4th December 2012 at 16:12. Reason: Adding some text
JEEB is offline   Reply With Quote
Old 4th December 2012, 19:51   #6  |  Link
benwaggoner
Moderator
 
Join Date: Jan 2006
Location: Portland, OR
Posts: 4,750
Quote:
Originally Posted by JEEB View Post
HM 9.1 has been released.
Yea!

Is there anywhere to get a binary for Windows (32 or 64-bit) for the Visual Studio impaired?

I spent two years as a maintainence engineer on banking software, and the experience was so scarring I've not been able to write a line of code since 1995 ...
__________________
Ben Waggoner
Principal Video Specialist, Amazon Prime Video

My Compression Book
benwaggoner is offline   Reply With Quote
Old 4th December 2012, 20:46   #7  |  Link
JEEB
もこたんインしたお!
 
JEEB's Avatar
 
Join Date: Jan 2008
Location: Finland / Japan
Posts: 512
Quote:
Originally Posted by benwaggoner View Post
Yea!

Is there anywhere to get a binary for Windows (32 or 64-bit) for the Visual Studio impaired?

I spent two years as a maintainence engineer on banking software, and the experience was so scarring I've not been able to write a line of code since 1995 ...
Here're the 32bit debug binaries I made with VS2010, and here are 32bit release binaries.

This way you can basically watch out for possible miscompilations, as well as have the debug symbols useful enough in case anything crashing happens

Not like HM is supposed to be fast, anyways (5h+ on my C2D Penryn for 2155 frames' worth of 320x180).
__________________
[I'm human, no debug]

Last edited by JEEB; 5th December 2012 at 14:46.
JEEB is offline   Reply With Quote
Old 4th December 2012, 20:59   #8  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,565
Let's hope HEVC will be great at reasonable speeds, too.
sneaker_ger is offline   Reply With Quote
Old 4th December 2012, 21:11   #9  |  Link
benwaggoner
Moderator
 
Join Date: Jan 2006
Location: Portland, OR
Posts: 4,750
Quote:
Originally Posted by sneaker_ger View Post
Let's hope HEVC will be great at reasonable speeds, too.
Vanguard announced a realtime 1080p HEVC encoder at IBC that sounds quite promising.

Given the improved tools, I think HEVC should be able to provide better quality at the same encoding time as H.264. A fully-tuned encode might be slower in HEVC, however, as there are more different ways to do things. Also, the decoder is somewhat slower, and that'd be part of the refinement loop in a high-quality encoder.

So, I'd think that quality @ time will be substantially better in HEVC. But a placebo mode would likely be slower than in H.264.

Of course, implementations and tuning make a HUGE different here. I'm sure there will be some HEVC encoders that'll be worse than some H.264 encoders for particular scenarios.
__________________
Ben Waggoner
Principal Video Specialist, Amazon Prime Video

My Compression Book
benwaggoner is offline   Reply With Quote
Old 5th December 2012, 11:52   #10  |  Link
Parabola
Registered User
 
Parabola's Avatar
 
Join Date: Nov 2012
Posts: 41
Quote:
Originally Posted by JEEB View Post
Here're the 32bit debug binaries I made with VS2010.
You really don't want to mess with the debug builds if you're encoding. Unless you already have them handy, jeeb, I will build release config of HM 9.1 and PM Ben with URL.
__________________
John @
Parabola Research Limited - HEVC conformance and technology
http://www.parabolaresearch.com/
Parabola is offline   Reply With Quote
Old 5th December 2012, 12:27   #11  |  Link
JEEB
もこたんインしたお!
 
JEEB's Avatar
 
Join Date: Jan 2008
Location: Finland / Japan
Posts: 512
Quote:
Originally Posted by Parabola View Post
You really don't want to mess with the debug builds if you're encoding. Unless you already have them handy, jeeb, I will build release config of HM 9.1 and PM Ben with URL.
Why not? In general, it a) was not /too/ slow b) Makes sure that compiler optimizations do not break anything c) has debugging symbols (although PDB files are a big thing with MSVC)

In other words, it's not really bad -- and if I recall correctly the configuration for HM should not depend on the shared debug CRT (I did check with dependency walker but I might have missed something).

Of course, if someone actually asked for a release build, I was naturally ready to build one as well. I guess I'll compile one and up to fushizen when I get to a workstation with Windows (or home).

Edit: Added release builds into my previous post as they were indeed requested
__________________
[I'm human, no debug]

Last edited by JEEB; 5th December 2012 at 14:47.
JEEB is offline   Reply With Quote
Old 9th December 2012, 11:32   #12  |  Link
easyfab
Registered User
 
Join Date: Jan 2002
Posts: 332
I think HEVC looks promising, here my little test on foreman_cif.yuv clip

- HM9.1 (build commit a0da0c21f34b05bda60e406f991a76b599876a68 ):

TAppEncoder.exe -c encoder_randomaccess_main.cfg -q 26 -fr 30 -wdt 352 -hgt 288 -f 300 -i foreman_cif.yuv -b hevc.bin

hevc.bin : 369 ko

- X264 (2216)

X264 --tune psnr --crf 26.7 --preset placebo

X264.mkv : 370 ko


psnr with MSU Video Quality Measurement Tool :

HEVC : AVG: 37.57242
X264 : AVG: 36.87016

Not bad for HEVC but not 50% better and X264 encode need ~10 sec and HM9.1 746 sec
easyfab is offline   Reply With Quote
Old 9th December 2012, 11:40   #13  |  Link
easyfab
Registered User
 
Join Date: Jan 2002
Posts: 332
And with x264 --tune psnr --preset medium --crf 28.1 : x264.mkv 366 ko
psnr 35.86
easyfab is offline   Reply With Quote
Old 12th December 2012, 14:19   #14  |  Link
mandarinka
Registered User
 
mandarinka's Avatar
 
Join Date: Jan 2007
Posts: 729
0.8db PSNR is actually a huge difference (ignoring the fact that it might not be a suitable metric for comparing two different formats). Note that HM isn't a top-notch sophisticated encoder like x264 (not to mention placebo setting). Lots of people would actually expect x264 to win here, given that - despite the h.264 format itself being inferior.
mandarinka is offline   Reply With Quote
Old 12th December 2012, 14:33   #15  |  Link
Kurtnoise
Swallowed in the Sea
 
Kurtnoise's Avatar
 
Join Date: Oct 2002
Location: Aix-en-Provence, France
Posts: 5,191
Why comparing with x264 ? Just use the H.264 reference encoder, like the HEVC one...
Kurtnoise is offline   Reply With Quote
Old 12th December 2012, 16:25   #16  |  Link
Sagittaire
Testeur de codecs
 
Sagittaire's Avatar
 
Join Date: May 2003
Location: France
Posts: 2,484
Quote:
Originally Posted by Kurtnoise View Post
Why comparing with x264 ? Just use the H.264 reference encoder, like the HEVC one...
Well it's better to compare with x264 ... simply because x264 is best H264 implementation in the area actually for PSNR. Sound promising for HEVC ... ;-)
__________________
Le Sagittaire ... ;-)

1- Ateme AVC or x264
2- VP7 or RV10 only for anime
3- XviD, DivX or WMV9
Sagittaire is offline   Reply With Quote
Old 12th December 2012, 19:28   #17  |  Link
benwaggoner
Moderator
 
Join Date: Jan 2006
Location: Portland, OR
Posts: 4,750
And I'd expect HEVC's advantages to improve as frame size goes up. Those big transforms are doing to do a lot more for 1080p and beyond than for 352x288, which is what H.264 Baseline and Main were originally tuned for.

It would be great if someone has the time to try one of those 2160p test sequences . That'd be a LOOONG encode.
__________________
Ben Waggoner
Principal Video Specialist, Amazon Prime Video

My Compression Book
benwaggoner is offline   Reply With Quote
Old 13th December 2012, 10:37   #18  |  Link
schweinsz
Registered User
 
Join Date: Nov 2005
Posts: 497
Quote:
Originally Posted by Sagittaire View Post
Well it's better to compare with x264 ... simply because x264 is best H264 implementation in the area actually for PSNR. Sound promising for HEVC ... ;-)
To the best of my knowledge, there is the comparison among the VP8, x264 and the HEVC reference software HM x.0 version, it show that the HEVC reference software is better than the x264.
schweinsz is offline   Reply With Quote
Old 13th December 2012, 20:33   #19  |  Link
Sagittaire
Testeur de codecs
 
Sagittaire's Avatar
 
Join Date: May 2003
Location: France
Posts: 2,484
Quote:
Originally Posted by schweinsz View Post
To the best of my knowledge, there is the comparison among the VP8, x264 and the HEVC reference software HM x.0 version, it show that the HEVC reference software is better than the x264.
certainely ... I say only that x264 is the best H264 implementation in the area for PSNR ... lol
__________________
Le Sagittaire ... ;-)

1- Ateme AVC or x264
2- VP7 or RV10 only for anime
3- XviD, DivX or WMV9
Sagittaire is offline   Reply With Quote
Old 14th December 2012, 11:53   #20  |  Link
iwod
Registered User
 
Join Date: Apr 2002
Posts: 756
Quote:
Originally Posted by mandarinka View Post
0.8db PSNR is actually a huge difference (ignoring the fact that it might not be a suitable metric for comparing two different formats). Note that HM isn't a top-notch sophisticated encoder like x264 (not to mention placebo setting). Lots of people would actually expect x264 to win here, given that - despite the h.264 format itself being inferior.
I actually expect HM to lose badly. I never actually record, in the time of Mpeg 4 vs Mpeg 2, or H.264 Reference vs Xvid, that a reference encoder actually beat the best of previous generation encoder. So we are off to great start. I just hope they wont create another stupid insanely low quality profile where we are forced to use it. ( Like how iPhone limits to MP ).
iwod is offline   Reply With Quote
Reply

Tags
hevc. h.265

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 21:18.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.