| 1 | Software usage example |
|---|
| 2 | Contact: Woo-Jin Han, wjhan.han@samsung.com |
|---|
| 3 | |
|---|
| 4 | 1. Installation and compilation |
|---|
| 5 | 1.1 Source tree |
|---|
| 6 | - Root |
|---|
| 7 | |--- bin |
|---|
| 8 | |--- build |
|---|
| 9 | |--- linux |
|---|
| 10 | |--- cfg |
|---|
| 11 | |--- cfp |
|---|
| 12 | |--- doc |
|---|
| 13 | |--- source |
|---|
| 14 | |--- App |
|---|
| 15 | |--- TAppDecoder |
|---|
| 16 | |--- TAppEncoder |
|---|
| 17 | |--- Lib |
|---|
| 18 | |--- TLibCommon |
|---|
| 19 | |--- TLibDecoder |
|---|
| 20 | |--- TLibEncoder |
|---|
| 21 | |--- TLibVideoIO |
|---|
| 22 | |
|---|
| 23 | 1.2 Windows using MS Visual Studio |
|---|
| 24 | - Workspaces of VC6 and VC2008 are included in Root/build directory |
|---|
| 25 | 1.3 Linux |
|---|
| 26 | - Makefile is included in Root/build/linux directory |
|---|
| 27 | |
|---|
| 28 | 2. Encoder option |
|---|
| 29 | 2.1 Parameters |
|---|
| 30 | - TAppEncoder.exe -c config.cfg [options] |
|---|
| 31 | - Options |
|---|
| 32 | -c configuration file name |
|---|
| 33 | -i original YUV input file name |
|---|
| 34 | -o decoded YUV output file name |
|---|
| 35 | -b bitstream file name |
|---|
| 36 | -m dQP file name |
|---|
| 37 | -f number of frames to be encoded (default EOS) |
|---|
| 38 | -q Qp value, if value is float, QP is switched once during encoding |
|---|
| 39 | -g GOP size of temporal structure |
|---|
| 40 | -rg GOP size of hierarchical QP assignment |
|---|
| 41 | -s max CU size |
|---|
| 42 | -h CU depth |
|---|
| 43 | -r Number of reference (P) |
|---|
| 44 | -rb0 Number of reference (B_L0) |
|---|
| 45 | -rb1 Number of reference (B_L1) |
|---|
| 46 | -ip intra period in frames, (-1: only first frame) |
|---|
| 47 | -ldm recommended low-delay setting (with LDC), (0=slow sequence, 1=fast sequence) |
|---|
| 48 | -d max dQp offset for block |
|---|
| 49 | -dqr max dQp offset for slice |
|---|
| 50 | -t max transform size |
|---|
| 51 | -ltd min transform depth |
|---|
| 52 | -utd max transform depth |
|---|
| 53 | -v additional reference for weighted prediction (w: scale+offset, o: offset) |
|---|
| 54 | -tap number of interpolation filter taps (luma) |
|---|
| 55 | -tq0 QP offset of temporal layer 0 |
|---|
| 56 | -tq1 QP offset of temporal layer 1 |
|---|
| 57 | -tq2 QP offset of temporal layer 2 |
|---|
| 58 | -tq3 QP offset of temporal layer 3 |
|---|
| 59 | -pdx horizontal source padding size |
|---|
| 60 | -pdy vertical source padding size |
|---|
| 61 | -1/0 <name>: turn on/off <name> |
|---|
| 62 | <name> = ALF - adaptive loop filter |
|---|
| 63 | IBD - bit-depth increasement |
|---|
| 64 | GPB - generalized B instead of P in low-delay mode |
|---|
| 65 | HAD - hadamard ME for fractional-pel |
|---|
| 66 | SRD - SBAC based RD estimation |
|---|
| 67 | RDQ - RDOQ |
|---|
| 68 | LDC - low-delay mode |
|---|
| 69 | NRF - non-reference frame marking in last layer |
|---|
| 70 | BQP - hier-P style QP assignment in low-delay mode |
|---|
| 71 | PAD - automatic source padding of multiple of 16 |
|---|
| 72 | QBO - skip refers highest quality picture |
|---|
| 73 | ASR - adaptive motion search range |
|---|
| 74 | 2.2 Config file (example) |
|---|
| 75 | |
|---|
| 76 | #======== File I/O =============== |
|---|
| 77 | InputFile : d:\test\origcfp\RaceHorses_416x240_30.yuv |
|---|
| 78 | BitstreamFile : RaceHorses.bin |
|---|
| 79 | ReconFile : RaceHorses_enc.yuv |
|---|
| 80 | FrameRate : 30 # Frame Rate per second |
|---|
| 81 | FrameSkip : 0 # Number of frames to be skipped in input |
|---|
| 82 | SourceWidth : 416 # Input frame width |
|---|
| 83 | SourceHeight : 240 # Input frame height |
|---|
| 84 | FrameToBeEncoded : 9 # Number of frames to be coded |
|---|
| 85 | |
|---|
| 86 | #======== Coding Structure ======= |
|---|
| 87 | IntraPeriod : 32 # Period of I-Frame ( -1 = only first) |
|---|
| 88 | GOPSize : 8 # GOP Size (number of B slice = GOPSize-1) |
|---|
| 89 | NumOfReference : 1 # Number of reference frames |
|---|
| 90 | NumOfReferenceB_L0 : 1 # Number of reference frames for L0 for B-slices |
|---|
| 91 | NumOfReferenceB_L1 : 1 # Number of reference frames for L1 for B-slices |
|---|
| 92 | QP : 32 # Quantization parameter(0-51) |
|---|
| 93 | |
|---|
| 94 | #======== New Structure =========== |
|---|
| 95 | MaxCUWidth : 128 # Maximum Coding Unit size in width |
|---|
| 96 | MaxCUHeight : 128 # Maximum Coding Unit size in Height |
|---|
| 97 | MaxPartitionDepth : 5 # Maximum partition depth. ( minimum width = MaxWidth >> (MaxPartitionDepth-1) ) |
|---|
| 98 | |
|---|
| 99 | #=========== B Slice =================== |
|---|
| 100 | HierarchicalCoding : 1 # B hierarchical coding ON/OFF (if OFF, no reference B is used) |
|---|
| 101 | |
|---|
| 102 | #=========== Entropy Coding ============ |
|---|
| 103 | SymbolMode : 1 # CAVLC: 0, SBAC: 1, only 1 supported, CAVLC implementation is not completed |
|---|
| 104 | |
|---|
| 105 | #=========== Loop/Deblock Filter ======= |
|---|
| 106 | LoopFilterDisable : 0 # Disable loop filter in slice header (0=Filter, 1=No Filter) |
|---|
| 107 | LoopFilterAlphaC0Offset : 0 # Range: -26 ~ 26 |
|---|
| 108 | LoopFilterBetaOffset : 0 # Range: -26 ~ 26 |
|---|
| 109 | |
|---|
| 110 | #=========== Motion search ============= |
|---|
| 111 | FastSearch : 1 # 0:Full search 1:Diamond 2:PMVFAST(not supported) |
|---|
| 112 | SearchRange : 128 # (0: Search range is a Full frame) |
|---|
| 113 | MaxDeltaQP : 0 # Absolute delta QP (1:default) |
|---|
| 114 | |
|---|
| 115 | 2.3 Typical example |
|---|
| 116 | |
|---|
| 117 | Example 1) TAppEncoder.exe -c test.cfg -q 32 -g 8 -f 9 -s 64 -h 4 |
|---|
| 118 | (Hier-B) -> QP 32, hierarchical-B GOP 8, 9 frames, 64x64-8x8 CU (~4x4 PU) |
|---|
| 119 | |
|---|
| 120 | Example 2) TAppEncoder.exe -c test.cfg -q 32 -g 4 -f 9 -s 64 -h 4 -1 LDC |
|---|
| 121 | (Hier-P) -> QP 32, hierarchical-P GOP 4, 9 frames, 64x64-8x8 CU (~4x4 PU) |
|---|
| 122 | |
|---|
| 123 | Example 3) TAppEncoder.exe -c test.cfg -q 32 -g 1 -f 9 -s 64 -h 4 -1 LDC |
|---|
| 124 | (IPPP) -> QP 32, hierarchical-P GOP 4, 9 frames, 64x64-8x8 CU (~4x4 PU) |
|---|
| 125 | |
|---|
| 126 | 3. Decoder option |
|---|
| 127 | 3.1 Parameters |
|---|
| 128 | - TAppDecoder.exe -b test.bin -o test.yuv |
|---|
| 129 | . Decode test.bin and make test.yuv as the reconstructed YUV |
|---|
| 130 | - TAppDecoder.exe -b test.bin |
|---|
| 131 | . Decode test.bin but YUV writing is skipped |
|---|
| 132 | |
|---|
| 133 | 4. Contact point |
|---|
| 134 | |
|---|
| 135 | =========================================================== |
|---|
| 136 | Woo-Jin Han, Principal Engineer |
|---|
| 137 | (wjhan.han@samsung.com) |
|---|
| 138 | |
|---|
| 139 | M/M Platform Lab |
|---|
| 140 | |
|---|
| 141 | Digital Media & Communications R&D Center |
|---|
| 142 | Digital Media & Communications Business |
|---|
| 143 | Samsung Electronics Co. Ltd. |
|---|
| 144 | |
|---|
| 145 | Korea phone) |
|---|
| 146 | +82-31-279-8831 (office), +82-10-3329-6393 (cellular) |
|---|
| 147 | =========================================================== |
|---|