JMVM Software Manual
Version: JMVM 8.0 (CVS tag: JMVM_8_0)
Last update: June 3, 2008
Summary:
This document contains a detailed description of the usage and configuration of the JMVM (Joint
Multiview Video Model) software for the Multiview Video Coding (MVC) project of the Joint Video
Team (JVT) of the ISO/IEC Moving Pictures Experts Group (MPEG) and the ITU-T Video Coding
Experts Group (VCEG).
It provides information how to build the software on Windows32 and Linux platforms. It contains a
description of the usage and configuration for the binaries built from the software package, including
examples for multiview coding scenarios.
[TBD] Guidelines for the integration and validation of new tools in the software are provided.
File: raw.doc Page: 1 Date Saved: 2008-06-04
1 General Information
The JMVM (Joint Multiview Video Model) software is the reference software for the Multiview
Video Coding (MVC) project of the Joint Video Team (JVT) of the ISO/IEC Moving Pictures Experts
Group (MPEG) and the ITU-T Video Coding Experts Group (VCEG). Since the MVC project is still
under development, the JMVM Software as is also under development and changes frequently.
The JMVM software is written in C++ and is provided as source code. Section=1.1 describes how the
JMVM software can be obtained via a CVS server. Information about the structure of the CVS
repository is presented in section=1.2. Section=1.3 describes how the JMVM software can be build on
Win32 and Linux platforms, and section 1.4 gives basic information about the binaries that are
contained in the JMVM software package.
1.1 Accessing the latest JMVM Software
In order to keep track of the changes in software development and to always provide an up-to-date
version of the JMVM software, a CVS server for the JMVM software has been set up at the
Rheinisch-Westfälische Technische Hochschule (RWTH) Aachen. The CVS server can be accessed
using WinCVS or any other CVS client. The server is configured to allow read access only using the
parameters specified in Table 1. Write access to the JMVM software server is restricted to the JMVM
software coordinators group.
Table 1: CVS access parameters
authentication: pserver
host address: garcon.ient.rwth-aachen.de
path: /cvs/jvt
user name: jvtuser
password: jvt.Amd.2
module name: jmvm
Example 1 shows how the JMVM software can be accessed by using a command line CVS client.
cvs –d :pserver:jvtuser:jvt.Amd.2@garcon.ient.rwth-aachen.de:/cvs/jvt login
cvs –d :pserver:jvtuser@garcon.ient.rwth-aachen.de:/cvs/jvt checkout jmvm
In Example 2, it is shown how a specific JMVM software version – specified by a tag (JMVM_2_1 in
Example 2) – can be obtained using a command line CVS client. Note that represents an
abbreviation for the command , which was used in Example 1.
!!
cvs –d :pserver:jvtuser:jvt.Amd.2@garcon.ient.rwth-aachen.de:/cvs/jvt login
cvs –d :pserver:jvtuser@garcon.ient.rwth-aachen.de:/cvs/jvt co –r JMVM_2_1 jmvm
1.2 Structure of the CVS Repository
After accessing the JMVM software as described in section 1.1, a folder is created. The
directory structure of this folder is summarized in Table 2. Note that the folders " and " are created
during building the software as described in section 1.3. The folder contains all files that are
required for building and running the software.
The folder #$%&# is structured into sub-folders for libraries, test projects, and tools.
It contains all source and include files for the JMVM software, with exception of the include files that
need to be shared by different libraries and/or test projects. These include files are located in the folder
#$%&#.
File: raw.doc Page: 3 Date Saved: 2008-06-04
A log file describing the (main) changes from one JMVM software version to the next is given by
' !(. Note that this log files starts with the JMVM version 1.0 (CVS tag JMVM_1_0).
Table 2: Structure of the CVS repository for the JMVM software
Folder content
) ""
More information about the binaries are given in section 1.4.
*" ""
More information regarding the libraries are given in section 1.4.
'
All files that are required for building and using the JMVM software
are contained in this folder.
#$%&#"
Workspaces are provided for Microsoft Visual Studio 6 and
Microsoft Visual Studio .NET. Makefiles are provided for Linux.
#$%&# "
These examples are not guaranteed to be complete or to contain all
available configuration parameters. The examples only serve as a
basis for writing encoder configuration files.
#$%&# + ", "
'
Only include files for classes that are required by other libraries or
test projects should be placed into this folder. This folder contains a
subfolder for the frequently used library $%&*".
Include files of classes that are only required inside a library or test
project are contained in the library or test project folder in
#$%&#.
#$%&# "'
This folder contains all source files and the include files that are only
required inside a library or test project. This folder is organized in
appropriate sub-folders.
-..
This folder contains SVC related examples and should be
disregarded.
.
This folder is outdated and should be disregarded until told
otherwise.
Perl scripts for validating the JSVM software and is related to SVC
and should be disregarded.
' !(
This file described the (main) changes from one CVS version to the
next. It starts with JMVM version 1.0 (CVS tag: JMVM_1_0).
1.3 Building the JMVM software
It shall be possible to build the JMVM software on a Windows32 platform with Microsoft Visual
Studio .NET and on a Linux platform with gcc version=4. For information on how to build the software
on a Windows32 platform with Microsoft Visual Studio .NET refer to section 1.3.1, and for
information on how to build the software on a Linux platform with gcc version=4 refer to section 1.3.2.
Since the JMVM software is written in C++, it should also be possible to build the software on other
platforms, which provide a C++ compiler. However, it is only guaranteed that the software can be
build by using Microsoft Visual Studio .NET or the gcc compiler version 4.
All libraries are static libraries and all executable are statically linked to the libraries.
File: raw.doc Page: 4 Date Saved: 2008-06-04
1.3.1 Windows32 platform with Microsoft Visual Studio
The folder #$%&#"# contains a Microsoft Visual Studio=.NET workspace
$%&/(. In order to build the software, open this workspace with Microsoft Visual
Studio=.NET, and build all project files by selecting )0)1), which opens a new dialog
window. Then press the buttons 1 and 2".
The folder #$%&#"# also contains a Microsoft Visual Studio=6 workspace
$%&/(. However, the compilation under Microsoft Visual Studio=6 is only
occasionally checked, and thus it is not guaranteed that each software version can be build using
Microsoft Visual Studio=6. In order to build the software with Microsoft Visual Studio=6, open the
workspace with Microsoft Visual Studio=6.0, and build all project files by selecting
)0)1), which opens a new dialog window, in which the button 2"1 shall be
pressed.
After building the software the folders " and " shall contain the binaries and libraries summarized
in Example 3. Note that there exist two different versions for each binary or library, one with and one
without a “d” before the dot. The versions with a “d” before the dot represent binaries or libraries that
have been built in debug mode, while the versions without a “d” before the dot represent binaries or
libraries that have been built in release mode.
3)""4
===== binaries =====
bin/BitStreamExtractorStatic.exe
bin/BitStreamExtractorStaticd.exe
bin/DownConvertStatic.exe
bin/DownConvertStaticd.exe
bin/FixedQPEncoderStatic.exe
bin/FixedQPEncoderStaticd.exe
bin/H264AVCDecoderLibTestStatic.exe
bin/H264AVCDecoderLibTestStaticd.exe
bin/H264AVCEncoderLibTestStatic.exe
bin/H264AVCEncoderLibTestStaticd.exe
bin/MCTFPreProcessorStatic.exe
bin/MCTFPreProcessorStaticd.exe
bin/PSNRStatic.exe
bin/PSNRStaticd.exe
bin/QualityLevelAssignerStatic.exe
bin/QualityLevelAssignerStaticd.exe
bin/SIPAnalyser.exe
bin/SIPAnalyserd.exe
===== libraries =====
lib/H264AVCCommonLibStatic.lib
lib/H264AVCCommonLibStaticd.lib
lib/H264AVCDecoderLibStatic.lib
lib/H264AVCDecoderLibStaticd.lib
lib/H264AVCEncoderLibStatic.lib
lib/H264AVCEncoderLibStaticd.lib
lib/H264AVCVideoIoLibStatic.lib
lib/H264AVCVideoIoLibStaticd.lib
1.3.2 Linux platform with gcc compiler version4
Makefiles for the Linux with gcc compiler are provided in the folder #$%&#"#
and the corresponding sub-folders. Supposing that the current folder is the main folder of the
JMVM repository (see section=1.2), the commands specified in Example 4 should be executed to build
all project files.
&)*5 1&6(
cd JSVM/H264AVCExtension/build/linux
File: raw.doc Page: 5 Date Saved: 2008-06-04