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 > (HD) DVD, Blu-ray & (S)VCD > (HD) DVD & Blu-ray authoring

Reply
 
Thread Tools Search this Thread Display Modes
Old 4th March 2014, 00:23   #1  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
MVCenc v3.0.3 - MVC 3D Encoder (Intel Quick Sync)

As part of BDtoAVCHD software I developed this tool to optimize Blu-Ray 3D to BD-25/BD-9 MVC 3D transcoding. Is based on Intel Media SDK 2021 R1 with Intel Quick Sync HW acceleration capabilities on supported Intel Graphics systems, or SW acceleration on all systems.

Since not use pipes or other tricks and has been developed for just this purpose in mind, can be expect better performance that other existent tools. Conversely offers less flexibility and more simplified command line options.


Other features are "x264 compatible" status and progress indicator (eta) and advanced caching strategy for better I/O disk throughput.

Can expect 80 - 90 fps for high quality 3D MVC transcoding BD50 to BD25 on modern i7-4770K based system and no less of 60 fps on i7-3770K.
UPDATE: On Skylake 6700k from version 2.6.3 improved performance to 120 - 140 fps.



DOWNLOAD


COMMAND LINE USAGE


Example:

Code:
MVCenc.exe "path_to_source_avc.h264" "path_to_source_mvc.h264" 130873 "path_to_output.h264" 32699 2

CHANGELOG

Code:
Version 3.0.3 (06/03/2022)

 - Updated compiler to Visual Studio 2022.


Version 3.0.0 (06/11/2021)

 - Updated to Intel Media SDK 2021 R1.


Version 2.9.8 (01/02/2021)

 - Updated to Intel Media SDK 2020 R1.


Version 2.9.2 (01/24/2020)

 - Updated to Intel Media SDK 2019 R1 (API 1.28).
 - Updated compiler to Visual Studio 2019.


Version 2.8.6 (03/19/2018)

 - Updated to Intel Media SDK 2018 R2.1 (API 1.27).
 - Updated compiler to Visual Studio 2017 with Update 9.


Version 2.8.0 (05/12/2018)

 - Updated to Intel Media SDK 2018 R1 (API 1.26).
 - Updated compiler to Visual Studio 2017 with Update 6.


Version 2.7.2 (07/19/2017)

 - Updated to Intel Media SDK 2017 R1 (API 1.23).
 - Updated compiler to Visual Studio 2017


Version 2.6.4 (10/26/2016)
 
 - New 64-bit version.
 - Shared memory surfaces for decode-encode parts: this improves performance by 40% on both 32-bit and 64-bit versions.
 - Workaround to avoid memory leak present on Skylake systems using recent Intel HD Graphics Drivers 4501, 4530 and 4539.
 - Updated compiler to Visual Studio 2015 Update 3


Version 2.5.8 (07/27/2016)

 - Fixed: with some sources hangs using HW mode and recent Intel Graphics Drivers.


Version 2.5.7 (06/28/2016)

 - Updated to Intel Media SDK 2016 R2 (API 1.19).


Version 2.5.6 (05/09/2016)

 - Simplified memory allocation scheme.


Version 2.5.1 (11/27/2015)

 - Updated to Intel Media SDK 2016 (API 1.17).


Version 2.5.0 (11/12/2015)

 - Updated to Intel Media SDK 2015 Update 2.1 (API 1.16).


Version 2.4.6 (09/21/2015)

 - Upgraded to Visual Studio 2015 (no functional changes).


Version 2.4.5 (08/17/2015)

 - Updated to Intel Media SDK 2015 Update 2 (API 1.15).


Version 2.4.1 (04/02/2015)

 - Fixed error "No free frame surfaces" triggered on SW encode + target usage 1, 2 + slow system (encode speed < 1 fps).


Version 2.4.0 (03/20/2015)

 - PGS subtitles 3D depth information are preserved on transcoded stream (MVC scalable nesting SEI message).
 - Updated to Intel Media SDK 2015 Update 1.


Version 2.2.4 (11/20/2014)

 - Upgraded to Visual Studio 2013 (no functional changes).
 

Version 2.2.3 (11/07/2014)

 - Fixed all Pacific Rim 3D decoding issues (SW mode and HW mode).
 - Full compatible with latest Intel HD Graphics driver's series.
 - Slightly reduced CPU usage and memory usage.


Version 2.2.2 (10/25/2014)

 - Fixed: Possible image corruption (artifacts on MVC view) using Quick Sync acceleration and latest Intel
   Graphics drivers 15.33.xx.39xx


Version 2.2.1 (10/04/2014)

 - Updated to Intel Media SDK 2014 R2.
 - Added Kb/s written to disk on progress/eta status message.
 - Fixed: in some cases, last four or six frames of input stream are not encoded.


Version 2.1.3 (03/16/2014)

 - Final version included with BDtoAVCHD v2.1.3


Version 1.3.0 (03/09/2014)

 - If num_frames specified is lower that source frame count, encoded output are trimmed.
 - Fixed a typo in target usage range (valid range is 1-7).


Version 1.2.0 (03/05/2014)

 - Fixes artifacts/pixelation reported in some systems (HW encoding).


Version 1.1.0 (03/04/2014)
 
 - Added command line help and current system capabilities info. 
 - Better strategy for detection HW API LEVEL supported by system and chose SW on not supported systems.
 - Improved I/O caching strategy for better disk throughput.
 - Fixed random fail on SW encoding.


Version 1.0.0 (02/26/2014)

 - Initial release included with BDtoAVCHD 2.1.2

Last edited by pistacho; 3rd May 2023 at 08:52. Reason: new version
pistacho is offline   Reply With Quote
Old 5th March 2014, 14:10   #2  |  Link
Eseninzhiv
Registered User
 
Join Date: Jun 2012
Posts: 52
Thank you for the work done!
There is support for 2 passes?
Eseninzhiv is offline   Reply With Quote
Old 5th March 2014, 23:41   #3  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
Quote:
Originally Posted by Eseninzhiv View Post
There is support for 2 passes?
Not because Intel Media SDK no admits it. However, it is likely that in future Intel implements it.
pistacho is offline   Reply With Quote
Old 6th March 2014, 21:36   #4  |  Link
GZZ
Registered User
 
Join Date: Jan 2002
Posts: 581
Specifying the number of frames is only related to showing the correct status and not the amoung of frames it will decode/encode ?

I have specified 5000 frames and its showing this and still counting:

MVCenc [100.0%] 16754/5000 frames, 93.88 fps, eta 0:00:00

Also - target_usage: Intel's 'speed_vs_quality' (1-9; 1=max quality, 9=max speed)

If I specify level 8 or 9 its says: Cant init encoder, works fine with level 1-7, maybe a typo ?
GZZ is offline   Reply With Quote
Old 9th March 2014, 11:52   #5  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
Quote:
Originally Posted by GZZ View Post
Specifying the number of frames is only related to showing the correct status and not the amoung of frames it will decode/encode ?

I have specified 5000 frames and its showing this and still counting:

MVCenc [100.0%] 16754/5000 frames, 93.88 fps, eta 0:00:00
Effectively only used to calculate the progress status, but in next version can will be used also to trim to specified number of frames.


Quote:
Originally Posted by GZZ View Post
Also - target_usage: Intel's 'speed_vs_quality' (1-9; 1=max quality, 9=max speed)

If I specify level 8 or 9 its says: Cant init encoder, works fine with level 1-7, maybe a typo ?
Yes it’s a typo, fortunately BDtoAVCHD never calls MVCenc with level higher than 7. Fixed in next version.
pistacho is offline   Reply With Quote
Old 9th March 2014, 13:54   #6  |  Link
sef
Registered User
 
Join Date: Nov 2013
Location: Russia
Posts: 61
I have a problem with: MVCenc_v1.3.0, _v1.2.0, _v1.1.0..(works only _v1.0.0)

Not all frames encoded..



Right view is broken..


Last edited by sef; 9th March 2014 at 14:02.
sef is offline   Reply With Quote
Old 9th March 2014, 18:06   #7  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
@sef:

Please, upload exactly l & r files you used somewhere to check in my side.
pistacho is offline   Reply With Quote
Old 9th March 2014, 19:25   #8  |  Link
sef
Registered User
 
Join Date: Nov 2013
Location: Russia
Posts: 61
Unfortunately, I can't upload - weak internet channel..(mobile)
P.S. my gpu have latest drivers..(maybe i am wrong, but, HD 3000 not implement support of API 1.7 in HW mode)
P.S.S Intel Developer forum: "The Intel(R) 2nd Generation Core processors (with Intel(R) HD Graphics 3000 adapters) only support hardware features of (up to) API 1.4. Newer hardware supports new features."
What to do..

Last edited by sef; 9th March 2014 at 19:28.
sef is offline   Reply With Quote
Old 9th March 2014, 19:55   #9  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
I think:

a) Your source has not 600 frames (bad cut, etc.) really has 593 frames
b) A broken right view is produced by bad settings in tsMuxeR (please uncheck "continually insert PPS/SPS" and CHECK "do not change SEI and VUI data" for AVC and MVC tracks)
c) If you use a SW mode "old" GPU are NOT used at all.
pistacho is offline   Reply With Quote
Old 16th March 2014, 20:14   #10  |  Link
Wishbringer
Silent Reader
 
Wishbringer's Avatar
 
Join Date: Dec 2003
Location: Germany
Posts: 294
I don't know MVCenc in deep nor Intel SDK,
but I think it can't reach quality of x264 in AVC part (left eye for normal).
So my question: Is it possible to alter MVCenc that kind that x264 is used for encoding AVC-Part and Intel SDK for MVC-(Diff)-Tracks (right eye).
Wishbringer is offline   Reply With Quote
Old 18th March 2014, 23:27   #11  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
Quote:
Originally Posted by Wishbringer View Post
I don't know MVCenc in deep nor Intel SDK,
but I think it can't reach quality of x264 in AVC part (left eye for normal).
So my question: Is it possible to alter MVCenc that kind that x264 is used for encoding AVC-Part and Intel SDK for MVC-(Diff)-Tracks (right eye).
Unfortunately it's not possible because AVC - MVC streams are not independent and must be generated by same encoder. But perhaps Intel improves the quality introducing 2-pass encoding or x264 implementing 3D MVC encoding (in a future probably both things).
pistacho is offline   Reply With Quote
Old 21st March 2014, 16:19   #12  |  Link
colinhunt
Registered User
 
Join Date: Dec 2002
Posts: 1,022
First test run ended in an error before encoding started. Found this in error_log.txt: EXIT CODE => -1 (0xFFFFFFFF)

Encoding rig is Windows 7 64-bit, i7-3770K (with HD4000 GPU) and 16GB of RAM. I'm controlling the rig over Remote Desktop, in case that makes any difference.
colinhunt is offline   Reply With Quote
Old 22nd March 2014, 17:34   #13  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
And what is the command line? or paste entire error_log.txt also MVCenc_log.txt can help
pistacho is offline   Reply With Quote
Old 22nd March 2014, 20:29   #14  |  Link
colinhunt
Registered User
 
Join Date: Dec 2002
Posts: 1,022
Quote:
Originally Posted by pistacho View Post
And what is the command line? or paste entire error_log.txt also MVCenc_log.txt can help
MVCenc_log.txt is empty.

error_log.txt:

-[18/03/2014 - 20:51:36]--------------------------------------------------------------------------------
LAST CMD LINE => "C:\Program Files (x86)\BDtoAVCHD\MVCenc.exe" "F:\_TEMP\UNIVERSAL SOLDIER [2D+3D].job_0.avc.h264" "F:\_TEMP\UNIVERSAL SOLDIER [2D+3D].job_0.mvc.h264" 118090 "F:\_TEMP\UNIVERSAL SOLDIER [2D+3D].job_0.264" 34529 3 60000 30000
EXIT CODE => -1 (0xFFFFFFFF)
--------------------------------------------------------------------------------------------------------

I ran a second test on another PC last night. It's also Win7 64-bit, but with a i7-3820. That job began encoding video, but had stopped/crashed at some point during the night. Unfortunately I managed to delete the workfiles (d'oh!) but I remember looking at the error_log and thinking, "oh, it's the same exit code".
colinhunt is offline   Reply With Quote
Old 22nd March 2014, 20:46   #15  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
Copy "LAST CMD LINE" to a text file and

add "pause" command.

Rename to .bat

e.g.

test.bat
Code:
"C:\Program Files (x86)\BDtoAVCHD\MVCenc.exe" "F:\_TEMP\UNIVERSAL SOLDIER [2D+3D].job_0.avc.h264" "F:\_TEMP\UNIVERSAL SOLDIER [2D+3D].job_0.mvc.h264" 118090 "F:\_TEMP\UNIVERSAL SOLDIER [2D+3D].job_0.264" 34529 3 60000 30000
pause
Execute bat and take a screenshot


EDIT:
Quote:
Originally Posted by colinhunt View Post
I ran a second test on another PC last night. It's also Win7 64-bit, but with a i7-3820. That job began encoding video, but had stopped/crashed at some point during the night. Unfortunately I managed to delete the workfiles (d'oh!) but I remember looking at the error_log and thinking, "oh, it's the same exit code".
In this case (because it has been running a while) for sure the log is not empty.
Please, repeat and paste last lines of MVCenc_log.

Last edited by pistacho; 22nd March 2014 at 21:17.
pistacho is offline   Reply With Quote
Old 23rd March 2014, 00:15   #16  |  Link
colinhunt
Registered User
 
Join Date: Dec 2002
Posts: 1,022
Quote:
Originally Posted by pistacho View Post
Copy "LAST CMD LINE" to a text file and add "pause" command. Rename to .bat
This is what I got from the i7-3770K rig:

Code:
F:\_TEMP>"C:\Program Files (x86)\BDtoAVCHD\MVCenc.exe" "F:\_TEMP\base.avc" "F:\_TEMP\dependent.mvc"
18090 "F:\_TEMP\OUTPUT.job_0.264" 34529 3 60000 30000
MVCenc v1.3.0. This tool is part of BDtoAVCHD software. Coded by Joel Gali.

Intel Media SDK Decoder Info: API LEVEL 1.8 -

Source Information:

 - Resolution:  1920x1080
 - Frame Rate:  48000/2002 (23.976 fps)

MVCenc: ERROR -> QueryIOSurf

F:\_TEMP>pause
Press any key to continue . . .
I had renamed the source files for a test I was running on another software, in case you're wondering. My guess is MVCenc can't access resources because I'm accessing the rig over Remote Desktop.

Setting up another run on the i7-3820 (it's the one I'm typing on now) to see what it writes to MVCenc_log.

Last edited by colinhunt; 23rd March 2014 at 00:21.
colinhunt is offline   Reply With Quote
Old 23rd March 2014, 10:53   #17  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
Seems that your system has multiple graphics adapters and Intel Graphics has driver installed but is inactive (is not primary display and/or not has a monitor connected).

Try, if you can, disable others graphics adapters and attach a monitor to Intel Graphics.

Also you can create a "fake display" using this method:
http://mirillis.com/en/products/tuto..._desktops.html

And use Intel Media SDK System Analyzer tool (included with BDtoAVCHD) to check configuration => BDtoAVCHD Help Menu.
pistacho is offline   Reply With Quote
Old 23rd March 2014, 11:23   #18  |  Link
colinhunt
Registered User
 
Join Date: Dec 2002
Posts: 1,022
Code:
Intel Media SDK System Analyzer (32 bit)
The following versions of Media SDK API are supported by platform/driver:

        Version Target  Supported       Dec     Enc
        1.0     HW      No
        1.0     SW      Yes             X       X
        1.1     HW      No
        1.1     SW      Yes             X       X
        1.3     HW      No
        1.3     SW      Yes             X       X
        1.4     HW      No
        1.4     SW      Yes             X       X
        1.5     HW      No
        1.5     SW      Yes             X       X
        1.6     HW      No
        1.6     SW      Yes             X       X
        1.7     HW      No
        1.7     SW      Yes             X       X
        1.8     HW      No
        1.8     SW      Yes             X       X

Graphics Devices:
        Name                                         Version             State
        Intel(R) HD Graphics 4000                    10.18.10.3496       Active
        NVIDIA GeForce GTX 660 Ti                    9.18.13.3489        08

System info:
        CPU:    Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz
        OS:     Microsoft Windows 7 Ultimate
        Arch:   64-bit
The rig is physically located in such a way that attaching a monitor is currently not possible, but I'll try the "fake display" method.

update: Remote Desktop won't allow changing displays so I switched to TeamViewer. Faking a display and forcing Intel HD4000 did not work quite like the tutorial explains, but I managed it by sheer trial-and-error. The result:

Code:
The following versions of Media SDK API are supported by platform/driver:

        Version Target  Supported       Dec     Enc
        1.0     HW      Yes             X       X
        1.0     SW      Yes             X       X
        1.1     HW      Yes             X       X
        1.1     SW      Yes             X       X
        1.3     HW      Yes             X       X
        1.3     SW      Yes             X       X
        1.4     HW      Yes             X       X
        1.4     SW      Yes             X       X
        1.5     HW      Yes             X       X
        1.5     SW      Yes             X       X
        1.6     HW      Yes             X       X
        1.6     SW      Yes             X       X
        1.7     HW      Yes             X       X
        1.7     SW      Yes             X       X
        1.8     HW      Yes             X       X
        1.8     SW      Yes             X       X

Graphics Devices:
        Name                                         Version             State
        Intel(R) HD Graphics 4000                    10.18.10.3496       08
        NVIDIA GeForce GTX 660 Ti                    9.18.13.3489        Active
Holy moley... I started another encoding run, and according to BDtoAVCHD the rig is encoding MVC at 65 fps!

Last edited by colinhunt; 23rd March 2014 at 12:46.
colinhunt is offline   Reply With Quote
Old 23rd March 2014, 12:18   #19  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
Right! At this point should work OK.
pistacho is offline   Reply With Quote
Old 23rd March 2014, 13:04   #20  |  Link
colinhunt
Registered User
 
Join Date: Dec 2002
Posts: 1,022
Quote:
Originally Posted by pistacho View Post
Right! At this point should work OK.
Yup, it appears to working great! By the way, how can I set the quality of encoding? I'm assuming MVCenc defaults to 3; what if I wanted to use 2 or 1?
colinhunt is offline   Reply With Quote
Reply

Tags
3d blu-ray encoder, mvc encoder, mvcenc

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 12:03.


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