Commit Graph

13 Commits

Author SHA1 Message Date
Herman Chen
f50df9b272 [mpp_enc]: Optimize encoder flow
1. Create hal_task_group in mpp_enc_hal.
2. Reduce EncAsyncTaskInfo copy in async flow.

Change-Id: If81ffc72122f87eb6d2f83bb5ecd7de5400bc140
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-21 09:37:52 +08:00
Herman Chen
f0079f49d2 [h264e_vepu580]: Add dpb hal func and more buffer
Change-Id: I1e458732b821571d25079aebe19831948bd591ee
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-26 16:04:22 +08:00
Herman Chen
de3df2acc8 [mpp_enc]: Fix issue on async mode fps frame drop
Change-Id: Ife600d4ea176d052ab142a15d72f2f57ad6a7351
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-21 11:44:19 +08:00
toby.zhang
b3edf0d22c [mpp_enc]: Add motion dection output path
Signed-off-by: toby.zhang <toby.zhang@rock-chips.com>
Change-Id: Ie0ee26af50cef7f883cb3cd2c50f9121e4f87079
2022-03-03 17:39:00 +08:00
Herman Chen
76cd30cc67 [h264e_vepu580]: Add more resource for multi-task
1. The register file should be increased.
2. The external line buffer should be increased.
3. Add register index to task flag.

Change-Id: I6e753db6452641ca9715b065ffd846ac74f3251b
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-02 14:44:20 +08:00
Herman Chen
fc8c86154e [hal_task]: Change hal_task to info with status
1. Split encoder and decoder hal_task defs and infos.
2. Change hal_task to a general info list with status.

Change-Id: I6f26035eeee4772d1ef99a21d85716e9c33eb9a6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-02-18 15:35:56 +08:00
Herman Chen
841775003d [mpp]: Add encoder timing record for each frame
Change-Id: I3e4689bd473b9de272000664ece7fe39c8d3d0d7
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-12-24 14:26:15 +08:00
Herman Chen
c2466a97b5 [mpp_enc]: Add low delay encoding path
NOTE: low delay path should be used with slice encoding.

Change-Id: I75b774fc5dbbc910d5aa722c4eeffe255415efbb
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-12-12 15:05:48 +08:00
Herman Chen
37ba4229ad [hal_enc_task]: Add MppEncRefFrmUsrCfg
There force reference frame user configure is added to encoder task.

Change-Id: I4482a831f988f47913c6e1d0385ccbdd0cd46031
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-24 16:18:31 +08:00
Herman Chen
a22c2e109b [h264e]: Update length after insert sei packet
1. Add length return when writing sps/pps/sei
2. After writing to packet update both packet length and task length.
3. Update rule of updating length and packet length.
4. Rate control use only hardware length to calculate.
5. Move update hal to the end of flow to reserve for adding extra data.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I9077747a34dc47079d6a1f90db7913c92aa448f5
2020-03-31 16:49:40 +08:00
Herman Chen
0a2d4e341c [mpp_enc_v2]: Add encoder header output mode
1. Default output mode is output header only on config changed.
2. Add new mode to output header on each intra frame.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Iea8dd1e6bb377318b88300d6a013f2c736b15afc
2020-03-30 17:16:11 +08:00
Herman Chen
6d52e80b27 [encoder]: Change rate control work flow
1. Add mpp_rc_api and mpp_rc_defs for open rc module to external users.
2. Add RcImplApi registration and setup function.
3. Separate RC module from the encoder implement.
4. Use EncFrmStatus and EncRcTaskInfo to control work flow.
5. proc_rc and update_rc function in enc_impl are removed.
6. Use rc_frm_start and rc_hal_start to process rate control.
7. Add more RcCfg setup in mpp_enc_v2.cpp.
8. Use rc_task to replace all the frame status and rc config transmit.
   EncFrmStatus is for encoder flow control.
   EncRcTaskInfo is for communication between rc / hal / hardware

Change-Id: Ia72b0e0804bfca13963c2b2a5887983fd9b5bcbf
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-03-19 14:43:02 +08:00
Herman Chen
6e6d43a9ce [hal_task]: Separate hal_task to different ones
hal_task will be separated to dec / enc / vproc hal_tasks.

Change-Id: I67c45772ca998a25ec116d6f08f0584f62408ad1
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-03-17 14:25:07 +08:00