Commit Graph

2434 Commits

Author SHA1 Message Date
Herman Chen
b749f0ba94 [mpp_enc_cfg]: Optimization on mpp_enc_cfg
1. Remove prefix before some args.
2. Add node count / info count calculation.

NOTE: the info count is correct but node count may have error.

Change-Id: I3a7d1005f440105eaf4b6d6326e92aa77d7d7e2a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-20 11:47:34 +08:00
Herman Chen
444f946153 [mpp_trie]: Fix uninitialized node content
Change-Id: I60e4b5a4beba33838c7e72169670c2d50929c039
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-20 08:43:08 +08:00
Herman Chen
ef72082c67 [legacy]: Fix vpu_api_test
1. Remove static libraries for mpp and vpu.
2. Fix vpu_api_test and use dlopen to access libvpu.
3. Fix issue on vepu22 dependence on rga.

vpu_api_test cmd:
enc: vpu_api_test -t 2 -w 1280 -h 720 -i a.yuv -coding 7 -o a.h264

Change-Id: I9682b17b90dce4a82400f5e2da3c955819f875bf
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-19 11:00:13 +08:00
Herman Chen
f963d33b97 [mpp_enc_cfg]: Fix missing symbol in mpp library
1. Use whole-archive option to include all function in mpp_base.
2. Reduce mpp_enc_cfg table size.

Change-Id: If8358b13a788d6b81c4f84d2a183e9ec8d080cc5
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-18 15:24:04 +08:00
Herman Chen
d95306a63b [mpp_enc]: Add color range support
1. Change interface for adding color range to MppPrepCfg.
2. Add option in MppEncCfg.
3. Add H.264 / H.265 sps support on full / limit range.

IMPORTANT: the binary backward compatibility is broken since this commit.

Change-Id: Ib68f29bab5c6d364fe8b612bd4dff2ecd5bc59cd
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-15 15:48:06 +08:00
Herman Chen
0b4532c6d5 [rk_mpi_cmd]: Add max_reenc_cnt for reencode flow
When max_reenc_cnt is zero the reencode flow is disabled.

Change-Id: Iba600b37bb5ab6e4f720b652d59abfae36f9e52f
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-15 15:48:06 +08:00
Herman Chen
85f9662150 [mpi_enc_test]: Use MppEncCfg to setup encoder
Change-Id: Ie3506a3555751344f54264d85804ee509a976659
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-15 15:48:06 +08:00
Herman Chen
83e2724158 [mpp_enc_cfg]: Add MppEncCfg control
1. Add h264e process function.
1. Add h265e process function.
2. Add jpege process function.
2. Add vpu_api_legacy support.
3. Clear input MppEncCfgSet when MPP_ENC_SET_CFG is finished.

Change-Id: Ida1234c351483bd9f96a75bc77e90ca2d75ec38b
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-15 15:48:06 +08:00
sayon.chen
8e00c203d7 [mpp_enc_cfg]: Add h265e default cfg
Change-Id: I7f4b05be7bcfdbb93cf3b40f74941e14190ce3b4
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-05-15 15:48:06 +08:00
Herman Chen
6f4e9a75e7 [jpege]: Add jpege api v2 implement
1. Add jpege_api_v2 module.
2. Move all control process to jpege_api_v2
3. Add hal_jpege_vepu1_v2 and hal_jpege_vepu2_v2 modules.
3. Add default rc for jpege.

Change-Id: I08c8adeb2d6613cbc074ee4978b9533739c21bb1
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-15 15:48:06 +08:00
Herman Chen
7e97c7eb29 [mpp_trie]: Update default node / info count
1. Set default node to 800 and info to 80.
2. Fix mpp_trie_test compile warning.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ie63ce123e18fefc3108d3be7cbdc50e08c21f846
2020-05-15 09:57:05 +08:00
Herman Chen
5deb30e815 [mpp_enc_cfg]: Set change flag when value updated
Change-Id: I6dde5a19d2f24994fa0ff166f5c76496168fec58
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-13 18:05:08 +08:00
sayon.chen
49f610442a [h265e_ps]: Support vui set
Change-Id: I5fa20430eb3cd8dd5f66d367db19463b0973e0df
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-05-13 15:33:29 +08:00
Johnson Ding
8b4d477c5f [base]: fix typo at file header
Change-Id: I476bd445e621a6c4427661e08982a4cacba92aa6
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2020-05-13 14:46:10 +08:00
Johnson Ding
aeb320ed33 [mpp_enc_v2]: config qp range if mb rc is disable
On FIXQP mode all qp will be set to init_quality.

Change-Id: Ic614c583e5dba0e5e4e129f46437adc87cd13fa0
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2020-05-13 14:42:59 +08:00
Herman Chen
8eb95cde37 [cmake]: Add armv7l support
Change-Id: I493eae823018e4bb658e367d71001dafa41b127a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-13 14:20:07 +08:00
Herman Chen
d40aea09bc [rk_venc_cfg]: Add new encoder cfg method
For better binary comaptibility users should use this method to
configure encoders.
NOTE: api only init once.

Change-Id: I5ced15b504e4933560895e6e11f62613ae89e350
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-13 14:10:34 +08:00
Herman Chen
50ef00aa79 [base]: Add trie for indexing
MppTrie will use the location of the input stream pointer as its
indexing pointer.

Change-Id: I2cb0b7d9cc2452db5698a971d08a24b98e5bc587
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-13 11:50:16 +08:00
Herman Chen
4b8a5f557a [rk_mpi_cmd]: Rename MPP_ENC_SET/GET_ALL_CFG
We are going to use new configure method for all encoders.

Change-Id: Id478d2567714ee9c6ddee3d410a4a855825f1c42
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-13 09:42:20 +08:00
Herman Chen
761db84321 [mpp_enc]: rename MppEncCfg to MppEncInitCfg
Change-Id: I90f97336e77bf82b68a59fbd26cfedd8754954b6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-12 08:59:54 +08:00
Herman Chen
f0f171f3d3 [mpp_enc_v2]: Fix issue of output multi header
Change-Id: Iff6a388ae1f453c46146b3bf5a9620c66bb2c3db
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-09 14:36:54 +08:00
Herman Chen
76249822c8 [h265e_vepu541]: Optimize detail parameters
Enlarge quantization bias.

Change-Id: I70eb2032c60f8f43909e3675f086647ae9329d14
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-07 11:38:20 +08:00
Herman Chen
ede5955685 [vepu541]: Fix block base qp_sum error
H.264 qp_sum is calculated by summon up 16x16 macroblock qp.
H.265 qp_sum is calcultaed by summon up 8x8 block qp.

Change-Id: I08d483d9cb997b25b9b6258259cb3b2290da3e4a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-06 14:14:05 +08:00
sayon.chen
dfe13c041a [vepu541]: Fix reenc case no read roi again
Change-Id: I857bd53ba173ae81fa1ab5065041c5d6ee9daca6
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-04-30 16:18:52 +08:00
Herman Chen
02c7073f35 [vepu541]: Fix roi error
1. Fix h.264 encoder roi buffer leak error.
2. Set all qparea to [1, 51] range.

Change-Id: I8434fc5fc60071ec533aba68fc2fe3be5a087bcd
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-29 19:26:00 +08:00
Herman Chen
4709cb2a95 [vepu541_common]: Add more roi config check
Change-Id: If5c32f1b0e0c40610fd60673e9d550570fab6c93
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-29 18:41:05 +08:00
Herman Chen
16047eb224 [mpp_time]: Add AUTO_TIMING for C++ function
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I1ec9f6307dce44f7aa086911477b27e523904cdc
2020-04-29 16:06:47 +08:00
Shunqian Zheng
9464af395b [misc]: Terminate soc_name to fix out of bounds
1. Terminate soc_name string to fix memory out of bounds
2. Fix all snprintf/strnlen warning

Change-Id: I4525c6e289a00d1509bc30ee69545d92f2f4b9cb
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
2020-04-29 16:06:47 +08:00
Herman Chen
32689b3708 [test]: Add user data option in mpi_enc_test
Change-Id: Ib84980defdcbae5f92ad841a107757392f37db2d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-29 08:50:43 +08:00
Herman Chen
5dc3cc1b39 [h264e_vepu541]: Relax restrictions on frame qp
Change-Id: I63a556770e47b0b2a0eb9063d2df71ddea087a58
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-29 08:38:10 +08:00
Herman Chen
f9df2edb13 [readme]: Add more resource
Change-Id: I463e4135eb65af1805330788120e64c20cfa1f9b
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-29 08:38:10 +08:00
Herman Chen
bd22096437 [mpp_enc_v2]: Fix gop update issue
When gop / fps / rc_mode in RcCfg is changed the header should be
resend.

Change-Id: Id055cfe2f752dc741dc05012f954198c00077caa
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-29 08:38:10 +08:00
Herman Chen
8c9f6f75fe [mpp_info]: Add funciton to read version string
Change-Id: I66f8c4a3669e3eb6d67289f12db300da149bdcb7
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-28 15:56:13 +08:00
Herman Chen
641ff2dbf3 [vepu541]: Fix extra mmco error
Change-Id: I529780c673232354c0b13536000ae15a007e1280
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-28 10:51:54 +08:00
Herman Chen
4af5fae615 [hal_bufs]: Add more parameter check
Change-Id: I0a1296e92b33fbae1f7c605cd85f933b2359f3c9
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-27 17:39:32 +08:00
Herman Chen
708f7d4b28 [utils]: Update RGB generation code
Change-Id: I016c92f80391392f3b7f0ebbf8c44d6fa2304c27
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-27 16:01:22 +08:00
Herman Chen
4f5e7d3773 [mpi_enc_utils]: Fix tsvc4 definition
Change-Id: I1c995af21ae14b1dc0d14ad0cbd9c6a02d6d03c4
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-27 10:41:43 +08:00
sayon.chen
63db2dc04d [rc_v2]: Fixed fix_qp encoder issue
Change-Id: I3969e01efdcccc39ccf782f958cff48c97d6308b
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-04-26 10:45:51 +08:00
Herman Chen
8f05fef8f7 [mpp_device]: Increase offset patch number
NOTE: encoder may have more than 5 address to add offset patch.
Increase max offset patch number from 5 to 16.

Change-Id: I0fe3c5f7a24596f87d8248fd37b4c4aa5a059dcc
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-26 10:39:38 +08:00
Herman Chen
3a48d6c31e [mpp_enc]: Enlarge mjpeg encoder stream buffer
Due to complex input image content mjpeg encoder required larger buffer
to avoid overflow and hardware mmu fault.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I4417ae5e62f16673a2ea06a5954463ce34b6bb8a
2020-04-24 09:00:07 +08:00
Herman Chen
ed34cf2aca [h264e_vepu541]: Fix error on non-16 align height
On vepu541 the H.264 width and height should be aligned to 16 first
which is different to H.265.

Change-Id: I6f20960916aedf47cd778c22d7dc1ad860b03bc9
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-23 15:30:19 +08:00
sayon.chen
44efeab31c [rc_v2]: Fix rc_model_v2 set issue
1. according frame type set max min quality qp
2. fix reenc check ins_bsp calc issue

Change-Id: Iededb7e64c40cc04432272ad3dd4b7d55c2aebd5
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-04-22 11:17:57 +08:00
sayon.chen
4516deda98 [h265e_api_v2]: Add check NULL when dpb deinit
Change-Id: I38df27e04d90e915bab93d7601f6984362436248
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-04-22 11:17:57 +08:00
Herman Chen
a32733c54e [hal_h264e]: Fix H.264 vepu error on kernel 4.19
On kernel 4.19 the send registers and recv registers can be different.
But due to compatibility kernel 4.4 the register copy is needed.

Change-Id: I1af7bbf8c27671627bda1679283693ec7eb4b0b5
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-21 08:40:40 +08:00
Ding Wei
8619ac32c0 [vepu]: fix issue of missing platform setup
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Change-Id: I7fe3fe706879b63ed47985fc99894e92fe2288f2
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2020-04-20 17:59:52 +08:00
sayon.chen
0674be61aa [h265e_dpb]: Fix tsvc temporal_id set issue
Change-Id: I173e1dcf3f55413f808ac5490a970d92e8226395
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-04-20 15:19:56 +08:00
Herman Chen
da8b35074c [legacy]: Fix compile warning
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I461c05e2d29453a756f29028cc6ca2b437d2131c
2020-04-20 11:48:57 +08:00
Herman Chen
d42f4ed028 [mpi]: Support relative qp in ROI region
New vepu541 encoder support relative qp delta config in ROI region.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Iac57469c30ea09ca03368cc3e02372a326c525ec
2020-04-20 10:34:42 +08:00
Herman Chen
4e3834b166 [h265e_vepu541]: Fix error on FBC input
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Iff293f94943d138c073338244205fe0007f34a52
2020-04-20 09:54:55 +08:00
Herman Chen
e8cb0d49f2 [enc_utils]: Format source code
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I92f133f89920b125d3f2d44ee718ed394acd7aab
2020-04-20 09:53:55 +08:00