Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 SVC (Scalable Video Coding) & JSVM (Joint Scalable Video Model) Kyumin Jeong Computer Communications Lab. October 1, 2007.

Similar presentations

Presentation on theme: "1 SVC (Scalable Video Coding) & JSVM (Joint Scalable Video Model) Kyumin Jeong Computer Communications Lab. October 1, 2007."— Presentation transcript:

1 1 SVC (Scalable Video Coding) & JSVM (Joint Scalable Video Model) Kyumin Jeong Computer Communications Lab. October 1, 2007

2 2 What is SVC? Scalable Video Coding (SVC) Project of the Joint Video Team (JVT) ISO/IEC Moving Pictures Experts Group (MPEG) ITU-T Video Coding Experts Group (VCEG) As an amendment of the H.264/MPEG-4 AVC standard One coding for multiple usage Universal Multimedia Access paradigm One source, use Anytime, Anywhere, Anydevice

3 What is SVC? Scalable Video Coding (SVC) 3

4 Scalability 4

5 5 JSVM JSVM (Joint Scalable Video Model) software Reference software for the Scalable Video Coding (SVC) project Written in C++ Provided as source code Can be obtained via a CVS server Preparations for using JSVM ( ) Python WinCVS, tcl/tk Python WinCVS WinCVS ( ) WinCvs could not find Python 2.1 installed

6 6 Accessing the latest JSVM Software CVS (Concurrent Versions System) JSVM SVC => JSVM CVS authenticationpserver host path/cvs/jvt user namejvtuser passwordjvt.Amd.2 module namejsvm or jsvm_red

7 7 Accessing the latest JSVM Software Using a command line CVS client Admin - Command Line, 1. cvs –d login 2. cvs –d checkout jsvm : C:\JSVM

8 FolderContent binlocation of binaries after building the software liblocation of libraries after building the software JSVMsource code and project files for the JSVM software JSVM/H264Extension/buildworkspaces and makesfiles JSVM/H264Extension/databasic examples of encoder configuration files JSVM/H264Extension/includeincludes files that are required by other libraries inside the JSVM project JSVM/H264Extension/srcinclude and source files for all libraries and test projects JSVM0-config-samplesusage examples MVC-Configsconfiguration examples for Multiple View Coding Validationvalidation scripts for checking the JSVM software C:\jsvm\ Software Manual.doc 8 Structure of the CVS repository for the JSVM Software

9 9 Building the JSVM software Windows32 platform with Microsoft Visual Studio C:\jsvm\JSVM\H264Extension\build\windows Microsoft Visual Studio.NET 2003 (VC7) workspace -H264AVCVideoEncDec.sln Microsoft Visual Studio.NET 2005 and 2006 (VC8) -H264AVCVideoEncDec_vc8.sln Microsoft Visual Studio 6 workspace -H264AVCVideoEncDec.dsw Build all project files by selecting Build Batch Build

10 10 Building the JSVM software Result The versions with a d before the dot Debug mode Without a d before the dot Release mode

11 11 Information on binaries and libraries

12 12 Information on binaries and libraries

13 13 Information on binaries and libraries

14 14 Usage and Configuration of the JSVM Software

15 URL Contents City, Crew, Football, Foreman, Bus, Ice, Harbour, Mobile, Soccer Contents 4CIF, CIF, QCIF 60, 30, 15, 7.5 Frame/Sec 15

16 16 1.JSVM SW Test Contents 2.Build a JSVM S/W 3.Manual Configure file test directory executables, test contents, cfg (, versioning ) 4.DownConvertStatic.exe Test Contents down convert 5.H264AVCEncoderLibTestStatic.exe Multi-Layer encoding (e.g) test BitStreamExtractorStatic.exe layer bitstream 7.H264AVCDecoderLibTestStatic.exe layer decoding YUV 8.PSNRStatic.exe PSNR

17 Resampler – DownConvertStatic.exe Spatial/temporal resampling 17 DownConvertStatic [ [ [ [ ]]]] [[-crop ] [-phase ]] #Down-sampling a 4CIF 60Hz sequence to a QCIF 15Hz sequence using the dyadic method DownConvertStatic CIF60.yuv QCIF15.yuv 1 2 #Resampling of a CIF 30Hz sequence to a 528x432 15Hz sequence using the normative upsampler. DownConvertStatic CIF30.yuv x432_15.yuv 0 1 method : rescaling methods (default: 0) 0: normative upsampling non-normative downsampling (JVT-R006) 1: dyadic upsampling (AVC 6-tap (1/2 pel) on odd luma samples dyadic downsampling (MPEG-4 downsampling filter) 2: crop only 3: upsampling (Three-lobed Lanczos-windowed sinc) 4: upsampling (JVT-O041: AVC 6-tap (1/2 pel) + bilinear 1/4 pel)

18 Resampler – DownConvertStatic.exe Cropping window Generating the output sequence as a cropped area of the input Cropping parameters crop_type -0 : for the entire sequence -1 : for each picture of the sequence crop_file -Filename of the file containing the cropping parameters -crop crop_type crop_file // parameters for frame 0 // parameters for frame 1 // parameters for frame 2 // parameters for frame 3... DownConvertStatic.exe p50.yuv SD25.yuv 0 –crop 0 crop.txt 1 content of crop.txt:

19 Resampler – DownConvertStatic.exe Chroma phase shift management -phase option in_uv_ph_x, in_uv_ph_y, out_uv_ph_x and out_uv_ph_y The horizontal and vertical phase shift, the chroma components in comparison to the luma component Input : Luma samples for the input sequence Output : Chroma phase shift of the output sequence Value range of -1 to 1 Resampling mode -resample_mode option Allow the resampling of both progressive or interlace material Value range of 0 to 5

20 Encoder - H264AVCEncoderLibTestStatic Generating AVC or SVC bit-streams Using the encoder No guarantee rate-distortion efficient coding -For obtaining optimized encoding results, the encoder configuration has to be carefully specified Not provide a rate-control -The bit-rate needs to be controlled by selecting appropriate quantization parameters Single-layer coding mode and Scalable coding mode Single-layer bit-stream can also be generated in the scalable coding mode Encoding mode is specified by the parameter AVCMode 20 H264AVCEncoderLibTestStatic.exe –pf [command line options]

21 Encoder - H264AVCEncoderLibTestStatic Single-layer coding mode AVCMode = 1 AVC compatible bit-stream is generated Encoder configuration file in single-layer coding mode 21

22 Encoder - H264AVCEncoderLibTestStatic Command line options Scalable coding mode AVCMode = 1 One or more layer configuration files have to be specified inside the main configuration files 22 -bf (bitstream) The parameter bitstream specifies the filename for the bit-stream to be generated. -frms (frames) The parameter frames specifies the number of frames of the input sequence to be encoded. -pf (config) The parameter config specifies the name of the config file to be used. -h Prints out a brief help on using the encoder. C:\jsvm\JSVM0-config-samples\Contrib-examples\JVT-O018\Munich-Test-Points\cfg_ags

23 Other JSVM Softwares Decoder - H264AVCDecoderLibTestStatic.exe SVC to AVC Bit-stream Rewriter - AvcRewriterStatic.exe Converts an SVC bitstream to an AVC bitsream 23 H264AVCDecoderLibTestStatic [-ec ] [ ] str: bit-stream file (input) rec: reconstructed video sequence (output) ec: error concealment method (1-3), 0 means no error concealment maxPocDiff: maximum difference of POC values of successive output frames AvcRewriterStatic svcstr: bit-stream file (input) avcstr: rewritten avc bit-stream file (output)

24 Other JSVM Softwares Bit-stream extractor - BitStreamExtractorStatic.exe Extract sub-streams of an AVC or SVC stream Streams with a reduced spatial and/or temporal resolution and/or a reduced bit-rate 24 BitStreamExtractorStatic [-pt trace] [ [[-e] [-ql | -qlord]] | [-sl] | [[-l] [-t] [-f]] | [-b] | [-et] ] Extraction of a scalable sub-stream using the general option –e BitStreamExtractorStatic input.svc output.svc –e Extraction of a scalable layer BitStreamExtractorStatic input.svc output.svc –sl 7

25 Other JSVM Softwares Quality level assigner – QualityLevelAssignerStatic.exe Embed information about quality layers inside a bit-stream Quality layer information can be employed by the extraction process -To optimize the rate-distortion efficiency of the extracted sub-stream 25 QualityLevelAssignerStatic -in Input -org L Original [-org L Original] [-out Output [-sei] | -wp DatFile] [-dep | -ind] [-mlql] or QualityLevelAssignerStatic -in Input -out Output -rp DatFile [-sei] -in Input - input bit-stream -out Output - output bit-stream with determined quality layer id's -org L Original - original image sequence for layer L -wp DatFile - data file for storing rate and distortion values -rp DatFile - data file with previously computed rate and distortion values -sei - provide quality layer info using SEI mesages -dep - determine only dependent distortions (speed-up by factor of 2, slight coding eff. losses) -ind - determine only independent distortions (speed-up by factor of 2, slight coding eff. losses) -mlql - determine Multi Layer Quality Layer Ids

26 Other JSVM Softwares MCTF pre-processing tool – MCTFPreProcessorStatic.exe Pre-filtering image sequences PSNR tool – PSNRStatic.exe Measuring the Peak-Signal-To-Noise-Ratio (PSNR) between two sequences Calculating the bit-rate 26 MCTFPreProcessor -w Width -h Height -f frms -i Input -o Output [-gop GOPSize] [-qp QP] -w Width - frame width in luma samples (multiple of 16) -h Height - frame height in luma samples (multiple of 16) -gop GOPSize - GOP size for MCTF (2,4,8,16,32,64, default: 16) -qp QP - QP for motion estimation and mode decision (>0, default: 26) PSNRStatic [ [ [ ]]] - rec: reconstructed file - t: number of temporal downsampling stages (default: 0) - strm: coded stream - frms: frames per second PSNRStatic org.yuv rec.yuv 0 0 str.svc 15 2>PSNR.txt type PSNR.txt 128,00 32,23 38, (1) bit-rate in kbit/s, (2) Y-PSNR in dB – luminance component, (3) U-PSNR in dB – chrominance component U or Cb, (4) V-PSNR in dB – chrominance component V or Cr

27 Other JSVM Softwares Fixed QP encoder - FixedQPEncoderStatic.exe Find the basis quantization parameter to meet A rate or a quality constraint for single layer coding The rate or quality constraints for the layers of a scalable stream SIP Analyser tool – SIPAnalyser.exe Make the selective inter-layer prediction decision 27 FixedQPEncoderStatic rc_cfg : the rate control parameter file configuring the fixed QP encoder SIPAnalyser.exe [FileLabel] sip_cfg : the SIP parameter file FileLabel : A suffix to the output filename

28 28 Use Examples as a Brief Tutorial - Single Layer Coding

29 29 Original Sequences Generation Goal YUV 4CIF, CIF The original CIF resolution sequences BUS_352x288_30_orig_01.yuv, FOREMAN_352x288_30_orig_01.yuv FOOTBALL_352x288_30_orig_01.yuv MOBILE_352x288_30.yuv URL :

30 Original Sequences Generation How to generate dowsampled versions Test file : SOCCER_352x288_30_orig_02.yuv Change : SOCCER_352x288_30.yuv Down-sampling original CIF 30Hz sequence to QCIF 15Hz sequence for the CIF scenario 30

31 Single Layer Coding Single layer coding Encoded bit-stream does not provide several spatial resolutions or several bit-rates for a specific spatio-temporal resoultion Generated bit-stream contains spatial or CGS/MGS enhancement layer Preparation for encoding SOCCER_176x144_15.yuv encoder.cfg layer0.cfg C:\jsvm\bin C:\jsvm\JSVM\H264Extension\data encoder.cfg layer0.cfg 31

32 Single Layer Coding encoder.cfg layer0.cfg 32 # JSVM Main Configuration File OutputFile test.264 # Bitstream file FrameRate 30.0 # Maximum frame rate [Hz] FramesToBeEncoded 150 # Number of frames (at input frame rate) GOPSize 16 # GOP Size (at maximum frame rate) BaseLayerMode 2 # Base layer mode (0: AVC w larger DPB, # 1:AVC compatible, 2:AVC w subseq SEI) SearchMode 4 # Search mode (0:BlockSearch, 4:FastSearch) SearchRange 32 # Search range (Full Pel) NumLayers 1 # Number of layers LayerCfg layer0.cfg # Layer configuration file # JSVM Layer Configuration File InputFile SOCCER_176x144_15.yuv # Input file SourceWidth 176 # Input frame width SourceHeight 144 # Input frame height FrameRateIn 15 # Input frame rate [Hz] FrameRateOut 15 # Output frame rate [Hz]

33 Single Layer Coding Encoder call for single-layer coding Result : test.264 and rec_layer0.yuv 33

34 Single Layer Coding Extracting a temporal sub-sequence 34

35 Single Layer Coding Decoding a temporal sub-sequence 35

36 Single Layer Coding Use of PSNR tool 36

Download ppt "1 SVC (Scalable Video Coding) & JSVM (Joint Scalable Video Model) Kyumin Jeong Computer Communications Lab. October 1, 2007."

Similar presentations

Ads by Google