hello,
I am using c6678 evm and I want to use the transcode project in mcsdk_video_2_1_0_8, but the transcode default set the encode as BP encode, I want to use HP encode, how can I config the codecParams.cfg?
Best Regards,
Si
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
hello,
I am using c6678 evm and I want to use the transcode project in mcsdk_video_2_1_0_8, but the transcode default set the encode as BP encode, I want to use HP encode, how can I config the codecParams.cfg?
Best Regards,
Si
Hi could you please let me know which transcoder project in mcsdk_video are you trying? CCS example?
thank you,
Paula
Hi Si, please use latest MCSDK video release CCS transcoder example which includes H264HP encoder
http://software-dl.ti.com/sdoemb/sdoemb_public_sw/mcsdk_video/02_02_00_42/index_FDS.html
alternatevely you can change used encoder
videoTranscode->properties -> C6000 Compiler -> include Options --> "${CODEC_ROOT}/C66x_h264hpvenc_01_00_02_00_ELF/packages"
You would need to download/install H264 HP encoder from http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C6678/index.html
Finally, save changeds, clean project and build project
Thank you,
Paula
hi Paula,
The MCSDK video link "http://software-dl.ti.com/sdoemb/sdoemb_public_sw/mcsdk_video/02_02_00_42/index_FDS.html" is a post production release for the MCSDK 3.1.0 release, but my mcsdk version is mcsdk_2_01_02_06, so I will try the other way you said, and i have some questions.
Q1: you said change incude options path as "${CODEC_ROOT}/C66x_h264hpvenc_01_00_02_00_ELF/packages",
and I think I have to also change the “C6000 Linker -> File Searc Path ” to link h264hpvenc_ti.le66 lib,not h264venc_ti.le66 lib, is it right?
Q2:"C:\ti\Codecs\C66x_h264hpvenc_01_00_00_01_ELF\packages\ti\sdo\codecs\h264hpvenc\App\Client\Test\TestVecs\Config" encoder.cfg file, there is a config
"Profile = 100 # Encoding profile 100 => HP, 77 => MP, 66 => BP. " , but for “C:\ti\mcsdk_video_2_1_0_8\examples\transcode\testVecs\config” codecParams.cfg, it 's default config is
"ch1_static_param11 = 66 # profileIdc“, it is BP encoder, so for transcode project ,after I change Q1 path, need I config the codecParams.cfg? If it 's, how?
Regards,
Si
hi Paula,
I download mcsdk_video/02_02_00_42 and find what you said"CCS transcoder example which includes H264HP encoder", then I build it, but there is some wrong, below is the error:
"../linker.cmd", line 164: error #10099-D: program will not fit into available memory. run placement with alignment fails for section ".shared_mem_SL2_uncached" size 0x1f008 . Available memory ranges:
MSMC size: 0x3fff00 unused: 0x1f638 max hole: 0xff00
error #10010: errors encountered during linking; "videoTranscode.out" not built
it likes that the MSMC memroy is almost full, there is not enough memory for shared_mem_SL2_uncached section. can you help me solve the problem?
Regards,
Si
Hi Si,
You are right, example CCS was not test it on drop42 and it is not fitting.. I will report the issue so it gets resolve on a next drop.
In Drop39 transcoder example CCS was checked (http://software-dl.ti.com/sdoemb/sdoemb_public_sw/mcsdk_video/02_02_00_39/index_FDS.html) so you can use this drop better.
This drop uses below codecs versions:
C66x_h264hpvdec_01_01_02_07_ELF
C66x_h264hpvenc_01_00_01_04_ELF
thank you,
Paula
Hi Paula,
I download the mcsdk_video_02_02_00_39, and build the transcode project, and I can build and run it successfully.
The project just uses one core for transcoding, but I want to use core0~core1 decoder and then core2~core7
encoder for one channel, what should I do? If I want to achieve multi channels, what should I do?
Regards,
Si
Hi Si, you can check MCSDK video PCIe demos for a multicore multichannel implementation of H.264
thank you,
Paula
Hi Si, TFTP framework demos can be configured in multicore
C:\TI\mcsdk_video_2_2_0_39\dsp\siu\vct\testVecs
please check H.264HP encoder/decoder
In codec params you can set number of cores and core teams
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
nCores = 2 # Number of Cores involved in the decode/encode operation
coreTeamMapping = 0 1 -1 # Core IDs (0-based) involved in the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
thank you,
Paula
Paula,
Yes,I find it, but it 's not a ccs project, I need a ccs project example which can run encode and decode on different core,and the demo can not run transcode on different cores of one chip, just encode or decode.
So what I want to achieve is a ccs project which includes source code, and also which can run multicore transcode.
Can you help me to achieve it?
Best Regards,
Si
Si, current CCS transcoder example is a back-to-back transcoder using one core, changing it to multicore would require some changes, let me check it and come back to you. On the other hand, if you need a CCS project for multicore encoder and/or decoder (but not transcoder) you can always check codecs CCS testbench
CCS project path example:
C:\TI\Codecs\C66x_h264hpvdec_01_01_02_07_ELF\packages\ti\sdo\codecs\h264hpvdec\App\Client\Build\TestAppDecoder
C:\TI\Codecs\C66x_h264hpvenc_01_00_02_00_ELF\packages\ti\sdo\codecs\h264hpvenc\App\Client\Build\C66X
Number of cores can be configure in: C:\TI\Codecs\C66x_h264hpvdec_01_01_02_07_ELF\packages\ti\sdo\codecs\h264hpvdec\App\Client\Test\TestVecs\Config\Testparams.cfg
C:\TI\Codecs\C66x_h264hpvenc_01_00_02_00_ELF\packages\ti\sdo\codecs\h264hpvenc\App\Client\Test\TestVecs\Config\encoder.cfg
Thank you,
Paula
Hi Paula,
when I use the C66x_h264hpvenc_01_00_02_00_ELF and C66x_h264hpvdec_01_01_02_07_ELF project,in the codecParams.cfg file , I want to run encode fron core1 to core7, because core0 will run other program. I modify the config, is it right?
codecName = H264HPENC # Name of the codec (must be listed in siuVctsupportedCodecs.c)
nCores = 7 # Number of Cores involved in the decode/encode operation
coreTeamMapping = 1 2 3 4 5 6 7 -1 # Core IDs (0-based) involved in the decode/encode operation
Regards,
Si
Hi Si, yes your changes in the configuration file are OK. Addicionally you need to change ownerProcID from "0" to "1" inside h264hpvenc.cfg:
SharedRegion.setEntryMeta(0,
{ base: Program.global.shmSL2Base,
len: Program.global.shmSL2Size,
ownerProcId: 1,
isValid: true,
cacheEnable: true,
cacheLineSize: 64,
name: "ipc_internal_shared_mem",
});
Thank you,
Paula
hi Paula,
I have a try following you said, I load the .out file to core1~core7,it can run because ipcAttachOwner(ncores), So I load the out file to core0~core7, it can run over the ipcAttachOwner(ncores),but also faild to encode, here is the output info:
[C66xx_1] ---------------------------------------------------------
[C66xx_2] ---------------------------------------------------------
[C66xx_3] ---------------------------------------------------------
[C66xx_4] ---------------------------------------------------------
[C66xx_5] ---------------------------------------------------------
[C66xx_7] ---------------------------------------------------------
[C66xx_1] Test Case Number : 1
[C66xx_2] Test Case Number : 1
[C66xx_3] Test Case Number : 1
[C66xx_4] Test Case Number : 1
[C66xx_5] Test Case Number : 1
[C66xx_7] Test Case Number : 1
[C66xx_1] ---------------------------------------------------------
[C66xx_2] ---------------------------------------------------------
[C66xx_3] ---------------------------------------------------------
[C66xx_4] ---------------------------------------------------------
[C66xx_5] ---------------------------------------------------------
[C66xx_7] ---------------------------------------------------------
[C66xx_6]
---------------------------------------------------------
Test Case Number : 1
---------------------------------------------------------
[C66xx_0]
[C66xx_1]
[C66xx_2]
[C66xx_3]
[C66xx_4]
[C66xx_5]
[C66xx_7]
[C66xx_0] ---------------------------------------------------------
[C66xx_1] ---------------------------------------------------------
[C66xx_2] ---------------------------------------------------------
[C66xx_3] ---------------------------------------------------------
[C66xx_4] ---------------------------------------------------------
[C66xx_5] ---------------------------------------------------------
[C66xx_7] ---------------------------------------------------------
[C66xx_0] Test Case Number : 1
[C66xx_1] Test Case Number : 1
[C66xx_2] Test Case Number : 1
[C66xx_3] Test Case Number : 1
[C66xx_4] Test Case Number : 1
[C66xx_5] Test Case Number : 1
[C66xx_7] Test Case Number : 1
[C66xx_0] ---------------------------------------------------------
[C66xx_1] ---------------------------------------------------------
[C66xx_2] ---------------------------------------------------------
[C66xx_3] ---------------------------------------------------------
[C66xx_4] ---------------------------------------------------------
[C66xx_5] ---------------------------------------------------------
[C66xx_7] ---------------------------------------------------------
[C66xx_0] ShmemTab initialized on Core 0
[C66xx_2] ShmemTab initialized on Core 2
[C66xx_4] ShmemTab initialized on Core 4
[C66xx_3] ShmemTab initialized on Core 3
[C66xx_1] Config File : ..\..\..\Test\TestVecs\Config\encoder.cfg
[C66xx_5] ShmemTab initialized on Core 5
[C66xx_1] Input YUV : ..\..\..\Test\TestVecs\Input\airshow_p352x288.yuv
Output Stream : ..\..\..\Test\TestVecs\Output\airshow_p352x288.264
[C66xx_6] ShmemTab initialized on Core 6
[C66xx_1] ShmemTab initialized on Core 1
Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.01.04 Done...
[C66xx_0]
[C66xx_2]
[C66xx_3]
[C66xx_4]
[C66xx_5]
[C66xx_6]
[C66xx_0] Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.01.04 Done...
[C66xx_2] Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.01.04 Done...
[C66xx_3] Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.01.04 Done...
[C66xx_4] Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.01.04 Done...
[C66xx_5] Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.01.04 Done...
[C66xx_6] Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.01.04 Done...
[C66xx_0]
Control Failed.
Failed in control call (XDM_SETPARAMS).
[C66xx_1]
******** Request to END H264 Encoder ********
[C66xx_0]
[C66xx_2]
[C66xx_3]
[C66xx_4]
[C66xx_5]
[C66xx_6]
[C66xx_0]
[C66xx_2]
[C66xx_3]
[C66xx_4]
[C66xx_5]
[C66xx_6]
[C66xx_0]
[C66xx_2]
[C66xx_3]
[C66xx_4]
[C66xx_5]
[C66xx_6]
[C66xx_0] ******** Request to END H264 Encoder ********
[C66xx_2] ******** Request to END H264 Encoder ********
[C66xx_3] ******** Request to END H264 Encoder ********
[C66xx_4] ******** Request to END H264 Encoder ********
[C66xx_5] ******** Request to END H264 Encoder ********
[C66xx_6] ******** Request to END H264 Encoder ********
I want to use 7 core to encode, so core1~core7 load encode out file, and core0 will run management out file, Can you help me to achieve it?
Regards,
Si
Hi Si, I was able to run it in my setup with below steps
1) modify ownerProcId: 1 in h264hpvenc.cfg. Save file, build clean, build
2) connect all the cores
3) Do system reset for Core 0 (via selecting Reset -> System Reset under the Target menu)
4) On Core 0, run the GEL file from the Scripts menu by selecting EVMTCI6608 Init Functions -> Global_Default_Setup. Wait until the following message is displayed: “C66xx_0: GEL Output: Global Default Setup... Done.”
5) Group cores 1 to 7: select/highlight the cores, then right clip and select "Group core(s)"
6) Highlight/Select "Group1" and Load the DSP image to the group by selecting Load Program... under the Target menu. Find the image sv04.out in the mkrel/sv04/flat directory
7) Target -> Run
Let me know if this works. Attached my output command line for your reference
---------------------------------------------------------
Test Case Number : 1
---------------------------------------------------------
[C66xx_1]
[C66xx_2]
[C66xx_3]
[C66xx_4]
[C66xx_5]
[C66xx_7]
[C66xx_1] ---------------------------------------------------------
[C66xx_2] ---------------------------------------------------------
[C66xx_3] ---------------------------------------------------------
[C66xx_4] ---------------------------------------------------------
[C66xx_5] ---------------------------------------------------------
[C66xx_7] ---------------------------------------------------------
[C66xx_1] Test Case Number : 1
[C66xx_2] Test Case Number : 1
[C66xx_3] Test Case Number : 1
[C66xx_4] Test Case Number : 1
[C66xx_5] Test Case Number : 1
[C66xx_7] Test Case Number : 1
[C66xx_1] ---------------------------------------------------------
[C66xx_2] ---------------------------------------------------------
[C66xx_3] ---------------------------------------------------------
[C66xx_4] ---------------------------------------------------------
[C66xx_5] ---------------------------------------------------------
[C66xx_7] ---------------------------------------------------------
[C66xx_2] ShmemTab initialized on Core 1
[C66xx_3] ShmemTab initialized on Core 2
[C66xx_4] ShmemTab initialized on Core 3
[C66xx_1] Config File : ..\..\..\Test\TestVecs\Config\encoder.cfg
[C66xx_5] ShmemTab initialized on Core 4
[C66xx_1] Input YUV : ..\..\..\Test\TestVecs\Input\airshow_p352x288.yuv
Output Stream : ..\..\..\Test\TestVecs\Output\airshow_p352x288.264
[C66xx_6] ShmemTab initialized on Core 5
[C66xx_1] ShmemTab initialized on Core 0
[C66xx_7] ShmemTab initialized on Core 6
Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.02.00 Done...
[C66xx_1]
[C66xx_2]
[C66xx_3]
[C66xx_4]
[C66xx_5]
[C66xx_6]
[C66xx_1] Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.02.00 Done...
[C66xx_2] Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.02.00 Done...
[C66xx_3] Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.02.00 Done...
[C66xx_4] Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.02.00 Done...
[C66xx_5] Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.02.00 Done...
[C66xx_6] Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.02.00 Done...
[C66xx_1]
Started Reading Frame : 0.......
#NA : IVIDEO_NA_FRAME : Bits : 0
Started Reading Frame : 0.......
#NA : IVIDEO_NA_FRAME : Bits : 0
Started Reading Frame : 0.......
#0 : IVIDEO_IDR_FRAME : Bits : 107000
core 1 ,nalSizes 24
core 1 ,nalSizes 8
core 1 ,nalSizes 76
core 2 ,nalSizes 97
core 3 ,nalSizes 686
core 4 ,nalSizes 3983
core 5 ,nalSizes 2988
core 6 ,nalSizes 2703
core 7 ,nalSizes 2810
Started Reading Frame : 1.......
#1 : IVIDEO_P_FRAME : Bits : 8712
core 1 ,nalSizes 23
core 2 ,nalSizes 35
core 3 ,nalSizes 85
core 4 ,nalSizes 184
core 5 ,nalSizes 133
core 6 ,nalSizes 274
core 7 ,nalSizes 355
#2 : IVIDEO_B_FRAME : Bits : 2936
core 1 ,nalSizes 11
core 2 ,nalSizes 13
core 3 ,nalSizes 33
core 4 ,nalSizes 58
core 5 ,nalSizes 40
core 6 ,nalSizes 82
core 7 ,nalSizes 130
#3 : IVIDEO_B_FRAME : Bits : 3400
core 1 ,nalSizes 11
core 2 ,nalSizes 13
core 3 ,nalSizes 41
core 4 ,nalSizes 66
core 5 ,nalSizes 52
core 6 ,nalSizes 79
core 7 ,nalSizes 163
Given number of frames are encoded
******** Request to END H264 Encoder ********
[C66xx_2]
[C66xx_3]
[C66xx_4]
[C66xx_5]
[C66xx_6]
[C66xx_7]
[C66xx_2]
[C66xx_3]
[C66xx_4]
[C66xx_5]
[C66xx_6]
[C66xx_7]
[C66xx_2]
[C66xx_3]
[C66xx_4]
[C66xx_5]
[C66xx_6]
[C66xx_7]
[C66xx_2] ******** Request to END H264 Encoder ********
[C66xx_3] ******** Request to END H264 Encoder ********
[C66xx_4] ******** Request to END H264 Encoder ********
[C66xx_5] ******** Request to END H264 Encoder ********
[C66xx_6] ******** Request to END H264 Encoder ********
[C66xx_7] ******** Request to END H264 Encoder ********
thank you,
Paula