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 > New and alternative video codecs

Reply
 
Thread Tools Search this Thread Display Modes
Old 29th October 2018, 19:43   #61  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 5,650
How did you do that? Did you apply a custom patch? Would that work with GCC 7.3.0 too, or only with GCC 8.2.0?
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid
LigH is offline   Reply With Quote
Old 30th October 2018, 13:11   #62  |  Link
SmilingWolf
I am maddo saientisto!
 
SmilingWolf's Avatar
 
Join Date: Aug 2018
Posts: 52
First thing I did was modify line 99 in CMakeList.txt from
if( UNIX )
to
if( NOT MSVC )
which is the same thing aom does to set the compiler flags for GCC/ICC/Clang.

Then I had to add
add_compile_options( "-mavx2" )
right below
add_compile_options( "-msse4.1" )

All the above BEFORE the "cmake -G "MSYS Makefiles" -DBUILD_STATIC=ON -DCMAKE_BUILD_TYPE=Release .." command of course

However! This triggers something in GCC and the compilation process bugs out on IntraPrediction.cpp because of some -Wmaybe-uninitialized which appears ONLY when compiling with -mavx2
So what I do is, make -j6 until it bugs out, then make VERBOSE=1 to intercept the "bad" compilation command, remove -mavx2 from it, run that command, reposition myself at the top of the build directory, then resume building normally.
Gotta do the same thing twice because IntraPrediction.cpp is used in a couple of libraries, so the object file ends up in different directories each time.

Not the most straightforward way, but everything seems to work fine afterwards

Last edited by SmilingWolf; 30th October 2018 at 13:15.
SmilingWolf is offline   Reply With Quote
Old 30th October 2018, 13:37   #63  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 5,650
Too much manual meddling for me as autobuild suite user...

I made it an official issue and hope it will be taken seriously.

At least it has a future. Unlike mencoder which may already be dead.
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid
LigH is offline   Reply With Quote
Old 30th October 2018, 14:02   #64  |  Link
SmilingWolf
I am maddo saientisto!
 
SmilingWolf's Avatar
 
Join Date: Aug 2018
Posts: 52
Well I did all that to stay on the "safe" side of things.

However one could modify line 75 in CMakeLists.txt from
bb_enable_warnings( gcc warnings-as-errors -Wno-sign-compare -Wno-class-memaccess )
to
bb_enable_warnings( gcc warnings-as-errors -Wno-sign-compare -Wno-class-memaccess -Wno-maybe-uninitialized )
along with the other CMakeLists.txt described above to enable SSE4.1 and AVX2. It compiles fine without manual intervention, altough I haven't tested yet the encoder built this way (just finished compiling).
There shouldn't be any problem though, -Wmaybe-uninitialized is known to be overzealous at times

Also, it's always strange to see my nick in quotes like 'SmilingWolf' or 'lupo...'. Makes me feel kinda like a shady character lol
Note that I don't mean anything by this. I'm merely too used to considering it my first name when I'm online

EDIT:
summing up, a git diff ready to apply to the repo looks like this:
Code:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2d59e74..3c3430c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -72,7 +72,7 @@ endif()
 # bb_enable_warnings( gcc -Wno-unused-variable )
 # bb_enable_warnings( gcc-4.8 warnings-as-errors -Wno-unused-variable )
 # for gcc 8.2:
-bb_enable_warnings( gcc warnings-as-errors -Wno-sign-compare -Wno-class-memaccess)
+bb_enable_warnings( gcc warnings-as-errors -Wno-sign-compare -Wno-class-memaccess -Wno-maybe-uninitialized )
 
 if( XCODE )
   bb_enable_warnings( clang warnings-as-errors
@@ -96,8 +96,9 @@ endif()
 bb_enable_warnings( msvc warnings-as-errors "/wd4996" )
 
 # enable sse4.1 build for all source files for gcc and clang
-if( UNIX )
+if( NOT MSVC )
   add_compile_options( "-msse4.1" )
+  add_compile_options( "-mavx2" )
 endif()
 
 # enable parallel build for Visual Studio
Attached the diff, too
Attached Files
File Type: diff doom9.diff (840 Bytes, 8 views)

Last edited by SmilingWolf; 30th October 2018 at 14:10.
SmilingWolf is offline   Reply With Quote
Old 30th October 2018, 14:08   #65  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 5,650
Well, I looked from the opposite side, pointing out it's just a nick, not a real name ... tastes are different.
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid
LigH is offline   Reply With Quote
Old 3rd November 2018, 11:04   #66  |  Link
SmilingWolf
I am maddo saientisto!
 
SmilingWolf's Avatar
 
Join Date: Aug 2018
Posts: 52
Quote:
Originally Posted by LigH View Post
Well, I looked from the opposite side, pointing out it's just a nick, not a real name ... tastes are different.
Sure, it's really not a big deal

64bits single-threaded binaries only (MSYS2/GCC 8.2):
VVCSoftware_VTM-2.2-156-g0326358: https://mega.nz/#!k4w3iQJI!0zN4oMEP2...rhoPcxcwzJ4RP8
SmilingWolf is offline   Reply With Quote
Old 10th November 2018, 15:08   #67  |  Link
SmilingWolf
I am maddo saientisto!
 
SmilingWolf's Avatar
 
Join Date: Aug 2018
Posts: 52
64bits single-threaded binaries only (MSYS2/GCC 8.2):
VVCSoftware_VTM-3.0rc1: https://mega.nz/#!klR2xAqI!-6CgrU7UI...WRHNtmK38xAO6o
SmilingWolf is offline   Reply With Quote
Old 12th November 2018, 22:16   #68  |  Link
Jamaika
Registered User
 
Join Date: Jul 2015
Posts: 502
I will add commands for the 8bit codec. They still need to work on decoding.

EncoderApp.exe -i image_21447.yuv -b video.vvc -wdt 1920 -hgt 1080 --InputBitDepth=8 --InputChromaFormat=420 --QP=0
--SEIDecodedPictureHash=0 --Verbosity --FramesToBeEncoded=1 --ConformanceWindowMode=0 --FrameRate=25
--QuadtreeTULog2MaxSize=5 --QuadtreeTUMaxDepthIntra=4 --QuadtreeTUMaxDepthInter=4 --Profile=next
--IntraPeriod=1 --GOPSize=1 --TransformSkip=1 --TransformSkipFast=1 --SEIDecodedPictureHash=3 --QTBT=1 --CTUSize=32

DecoderApp.exe -b video.vvc -o output.yuv --SEIDecodedPictureHash=0 --OutputBitDepth=8

https://www.sendspace.com/file/7ho3k5
Jamaika is offline   Reply With Quote
Old 12th November 2018, 22:31   #69  |  Link
SmilingWolf
I am maddo saientisto!
 
SmilingWolf's Avatar
 
Join Date: Aug 2018
Posts: 52
The official testing guidelines actually suggest using the config files already included in the repo, so the cmdline should look more like:

bin/EncoderApp.exe -c cfg/encoder_randomaccess_vtm.cfg --InputFile=orig.i420.yuv --ReconFile=vvc.qp31.3.0rc1.yuv --BitstreamFile=vvc.qp31.3.0rc1.bin --FrameRate=24000/1001 --FramesToBeEncoded=2159 --SourceWidth=320 --SourceHeight=240 --InputBitDepth=8 --OutputBitDepth=8 --InternalBitDepth=8 --QP=31

Last edited by SmilingWolf; 12th November 2018 at 22:35.
SmilingWolf is offline   Reply With Quote
Old Today, 13:30   #70  |  Link
Wolfberry
Helenium(Easter)
 
Wolfberry's Avatar
 
Join Date: Aug 2017
Location: Hsinchu, Taiwan
Posts: 84
64bit single-threaded binaries only (MSVC 19.16.27023.1)

VVCSoftware_VTM-3.0rc1-66a793a2
__________________
media-autobuild_suite builds / FFTW
Wolfberry is offline   Reply With Quote
Reply

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 22:05.


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