Commit Graph

387 Commits

Author SHA1 Message Date
sayon.chen
41c9c809b0 [mpp2str]: Add rc_gop_mode 2 str
Change-Id: I3fd4334cf108d62726e3caae5eda9801922d8ef9
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-12-24 17:21:33 +08:00
sayon.chen
476e6adfa5 [mpp_frame]: Add hor_stride_pixel interface
Change-Id: Ia6065b7c3832511c5d01263e6f07713028e8abd6
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-12-24 16:04:21 +08:00
Herman Chen
de8ace6622 [mpp_enc]: Separate qp change flag
Separate H.264 QP limit change flag into 3 flags

Change-Id: I658ab337569f8f715bde7633dce02b631a7d4239
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-12-17 14:33:17 +08:00
Herman Chen
96a7affc2b [mpp_enc_cfg]: Add low delay to MppEncCfgSet
Change-Id: I5f9e595b44cc39cc255c69a875618ea36de5e878
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-12-12 09:47:09 +08:00
Herman Chen
d523aaa888 [mpp_packet]: Add partition property
The partition property is for slice encoding / decoding.

Change-Id: Ibc5fa77293490ed520e7112b3b9ac53f0f5f42c6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-12-11 21:08:18 +08:00
shine.liu
9714d846d9 [legacy]: add cfg for FIXQP mode from outside
Change-Id: I6945630c8fb2fc8188c8ff8d608e017c34f4239d
Signed-off-by: shine.liu <shine.liu@rock-chips.com>
2020-12-09 17:46:50 +08:00
Herman Chen
d9c59b7c0a [mpp_dec]: Add MppDecCfg ctrl process to mpp_dec
Change-Id: I767e7b248922904d61aa19afd657a5543a2b9995
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-12-08 17:48:09 +08:00
Herman Chen
5d648bad8b [mpp_dec_cfg]: Add mpp_dec_cfg implement
Change-Id: Ic57fb37604930e841af8cdd6784120662f529110
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-30 09:46:27 +08:00
sayon.chen
e4f4b4f690 [vepu54x]: Compatible different device fbc input
RK isp fbc output use AFBC_V1 format.
RK rkvdec fbc output use AFBC_V2 format.
These two formats have different fbc payload offset calculation method.

Change-Id: Id050cbd58e33a1249098a2dc226d47c376d7c163
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-11-30 09:46:27 +08:00
sayon.chen
dfe9428017 [rc_v2]: Support super frame cfg process
Change-Id: I4de4d3e27925d81f26ed5819e07d3e45ed42061e
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-11-30 09:46:27 +08:00
Herman Chen
7ae2f73bca [mpp_enc_cfg]: Add super frame config
Change-Id: I0df2db8fd7c5e10412584ded557da3962b77f882
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-30 09:46:27 +08:00
Herman Chen
a875c5a308 [mpp_frame]: Add comment for MppFrame parameters
Add comment for width, height, hor_stride, ver_stride, offset_x and
offset_y.

Change-Id: If0297eafdd550902d40485d786f9494c85123622
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-24 14:09:20 +08:00
Herman Chen
302582b3b9 [mpp_frame]: Add offset x/y for cropping
Change-Id: Id3da30527fe709f7f89044a667c089b3dab6ef4f
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-24 11:53:30 +08:00
sayon.chen
5012336bc2 [enc_v2]: Suppport user data set
User data set is for multiple user data with uuid.

Change-Id: Iad952961ab6242ff3a14f554410144bebd3801ba
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-11-16 09:46:53 +08:00
Herman Chen
a75c5edcb7 [legacy]: Remove vpu dependence on mpp_service cmd
Change-Id: Ib447f1612f16cb9854fcee32c79eef5bcf26fe75
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-06 11:47:53 +08:00
Herman Chen
93bc0690d4 [mpp_enc_refs]: Add flag for recon frame writing
Change-Id: I8f68573a4156056b61a05c14d5eb7d2734958e0d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-28 15:20:06 +08:00
Herman Chen
3c55b55e46 [mpp_dec]: Add query interface for debug
1. Add query interface.
2. Add query result in mpi_dec_test.

Change-Id: Ie0026f155331c0b0f8e1b5409aeb7d41b6a3ecc6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-23 14:17:34 +08:00
yandong.lin
e54234a11b [vp8e]: Fix vp8e reencode and ivf problems
1. Not do reencode in vp8 enc
2. Add api to control whether need to add ivf header
   (default: have ivf header)

Signed-off-by: yandong.lin <yandong.lin@rock-chips.com>
Change-Id: I59a3a7193abead6c73e6e1eed593a115add77888
2020-10-23 10:07:10 +08:00
timkingh.huang
0f8aeda99d [comment]: add comments in the format of Doxygen
Change-Id: I1df49ed78b5b5cf88ff253c35c59cb0b061b4ea9
Signed-off-by: timkingh.huang <timkingh.huang@rock-chips.com>
2020-10-23 09:27:53 +08:00
Herman Chen
e509662728 [mpp_frame]: Make MppFrameFormat value visible
Change-Id: I1276af32ca4907bfabae2664ff6f0fe67eb8aa0d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-09 08:54:59 +08:00
Herman Chen
51d01e0069 [utils]: Fix error on RGB color fill
Change-Id: I5b7768e410135910d5c20994c84629678cd37524
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-29 16:39:10 +08:00
sayon.chen
96aad17638 [rc_v2]: Used I frame tuning config set
Change-Id: Iaaa717268804e047fa51bb0cf05790e25df143ba
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-09-28 17:59:02 +08:00
Herman Chen
cd311d877f [rc]: Separate check reenc and rc_end function
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ib594afdd25a0e4283612fd5808a27b229d40f597
2020-09-24 11:54:22 +08:00
Herman Chen
85ada595ee [mpp_enc_cfg]: Add encoder I frame tuning config
Add max_i_prop, min_i_prop and init_ip_ration for I frame tuning config.

max_i_prop:
The max percentage of intra frame size in one gop.

min_i_prop:
The min percentage of intra frame size in one gop.

init_ip_ration:
Define the first I frame size is how many times of one P frame size.
Set to 16 mean I frame size is equal to P frame size.
Set to 160 mean I frame size is 10 times of P frame size.

These three parameters are for tuning Intra frame quality.

Change-Id: Iac1e700fe2a51fb3a6ad94753784cd54ee789176
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-23 10:28:43 +08:00
Herman Chen
e3278d7655 [vepu541]: Fix OSD AYUV bit order definition error
Change-Id: I89ddd7b626873ea1d4ba22569f79d8706b216b55
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-23 10:28:43 +08:00
Herman Chen
4b386eba08 [mpp_frame]: Fix using ffmpeg definition
Do NOT use ffmpeg define.

Change-Id: I018cbd56db12d708d5a9db20523d674248ba540f
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-17 15:52:09 +08:00
Herman Chen
95670aa475 [mpi]: Add rk_venc_rc.h
1. Add rk_venc_rc.h for rate control definitions.
2. Add drop parameter to set_rc_cfg.

Change-Id: Iab27a1505ba187f512815f7ab00cd0ea7f863cb8
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-11 16:32:38 +08:00
sayon.chen
74cc83f69e [rc_v2]: Support avbr ratecontrol
when select avbr must set target_bps max_bps min_bps,in still scene
will used min_bps for enc, in the moving scene will max_bps for enc.
and final avg bit will get close to target_bps

Change-Id: I84b2878c7e76b18a593ca2a0d99c0c8f26a2d557
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-09-11 11:15:55 +08:00
Herman Chen
e8a428ea04 [mpi]: Cleanup unused definition
Change-Id: Ib8490abf7241f432164f647165b1c67c618c1168
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-10 14:59:03 +08:00
yandong.lin
5ea05d986e [vp8e_v2] add vp8e v2 implement
1. add vp8e_api_v2 module
2. add hal_vp8e_vepu1_v2 and hal_vp8e_vepu2_v2 module
3. add default rc for vp8e

Signed-off-by: yandong.lin <yandong.lin@rock-chips.com>
Change-Id: I6c0e9b0a0a7654b92905ac50431ba3f4b023c2e2
2020-09-09 16:09:31 +08:00
Herman Chen
b56cfdb688 [mpp_enc_cfg]: Add frame drop paramters
Add frame drop parameters for frame drop behavior on bitrate overflow.

Change-Id: Id90fbd0c63b1a0909e426a2c9f09c8b371bec0b7
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-09 15:21:54 +08:00
Herman Chen
f1ebb21814 [mlvec]: Fix error when ltr_frames larger than 3
Enlarge max ltr_frames support from 3 to 16.

Change-Id: I2d87a956019cbb4ce807aedc7be2d0c4987fa4d2
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-09 08:57:41 +08:00
sayon.chen
74f2f76fd7 [mpp_enc]: Support vui colour_description set
Change-Id: If84d8b04ce6ea430ed38d39c339eb9da783c6510
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-08 14:32:45 +08:00
Ding Wei
ea095cc3ae [jpege]: add rc for jpege
usage:
    q_factor - init factor
    qf_max   - max q_factor
    qf_min   - min q_factor

Change-Id: Idea1dea50f1f9c5e7e9ae41e1da228d5fb1a806b
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2020-09-08 09:05:59 +08:00
Herman Chen
ff9283dff7 [rk_venc_cmd]: Fix enum defintion error
Change-Id: I88426dc75362ef86c0a21109d295ce8bd983de4d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-08-31 11:33:05 +08:00
Herman Chen
455e1ceb40 [legacy]: Add VPU_API_SET_PARSER_SPLIT_MODE ctrl
Add VPU_API_SET_PARSER_SPLIT_MODE control for MPP_DEC_SET_PARSER_SPLIT_MODE

Change-Id: I7d6c2738f8d39ac4b179ae5d0c8534b580de80b7
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-08-11 11:52:41 +08:00
Herman Chen
21c21209c8 [h264e]: Add qp_delta_ip
The qp_delta_ip for H.264 is 3.

Change-Id: I33c052489011e93e8b496a284a84db1450ef5981
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-08-05 18:13:59 +08:00
Johnson Ding
cba637c3f1 [jpege/h264e]: fix RGB encode config
Change-Id: Iec9d928ad6fb1a31cbf6f224b264ebb6797294a3
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2020-08-05 10:52:05 +08:00
Herman Chen
e638362114 [mpp_enc]: Add max/min intra qp for H.264
NOTE: may change the behavior of get cfg

Change-Id: I1b3cd4cbbe7dc0f03e4cc38f1e831e429d4911c2
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-29 10:26:30 +08:00
Herman Chen
3f2a548916 [mpp_enc_refs]: Add refs configure force path
1. Add keep_cpb flag to keep the cpb status on refs cfg changed.
2. Add hdr_need_update check flag for resend header.
3. Add force flag implement in refs process.
4. Do not resend header on max_tid change only.
5. When gop is update the cpb should restart.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I2eb3191ce6f45ccea081fa861e4927abae96ff2b
2020-07-29 08:33:39 +08:00
Herman Chen
df0a7f0203 [h264e]: Add poc type / poc_lsb / frm_num setup
1. Add poc type / poc_lsb / frm_num default device value.
2. Add force update path.
3. Sps will use codec cfg directly.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I5f23b74f0453213c89c7238a36570484b91b48ce
2020-07-28 11:29:49 +08:00
yandong.lin
0f91ba604c [jpege:] Add q_factor and qtable
Add q_factor and qtalbe interface

Signed-off-by: yandong.lin <yandong.lin@rock-chips.com>
Change-Id: I6b59d0b2e740e4b2815e7c83ad9a3641fe700e2f
2020-07-27 17:37:38 +08:00
Herman Chen
6a64cde817 [mlvec]: Add MLVEC interface in vpu_api
1. Add vpu_api_mlvec module.
2. Attach vpu_api_mlvec module to vpu_api_legacy.
3. Add static and dynamic configure process.
4. At VpuApiLegacy::init if the extra_data is NULL do not get sps/pps.
5. Add VPU_API_GET_EXTRA_INFO (0x200) control to provide sps/pps.

Change-Id: I4666148ba4c150eea81bfa8cd25b63264cd16a2b
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-24 16:18:31 +08:00
sayon.chen
c7bedd82e4 [rc_v2]: Support smart gop rate control
Change-Id: Ie8cb39304af2628f3bed2cd452f164df643300da
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-07-24 08:55:16 +08:00
Herman Chen
c71b5338c3 [mpp_rc_defs]: Add rc force parameter
1. Add force frame qp mode.
2. More mode is reserved for future extension.

Change-Id: Ic12000082c7674b294c0be506f74a7d6129be6b9
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-22 11:07:36 +08:00
Herman Chen
81ec42ffb7 [mpp_packet]: Add metadata check function
Change-Id: I493d62c4aef6d93fdaebd503a7cc787d955b3541
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-22 11:07:36 +08:00
Herman Chen
31e911d44b [mpp_frame]: Add metadata check function
Change-Id: I95f722ae95b8db969c484b3157ddbe8c8f92a13f
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-22 11:07:36 +08:00
Herman Chen
f654f1a0ad [rk_venc_cmd]: Change h264 codec cfg
1. Remove slice mode/arg in H.264 codec cfg.
2. Add max long-term reference number / max temporal layer id / prefix
mode / base layer priority id.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: If34166e4658edba65f4c6c095412a6fadd941320
2020-07-08 16:32:33 +08:00
Herman Chen
7f4ebeec8e [meta]: Add more meta key for encoder
1. Add KEY_ENC_MARK_LTR for marking current frame to be long-term
referece frame.
2. Add KEY_ENC_USE_LTR for assigning a long-term reference frame as
current frame's reference frame.
3. Add KEY_ENC_FRAME_QP for assigning a fix QP for current frame.
4. Add KEY_ENC_BASE_LAYER_PID for assining a priority id for base layer
in tsvc mode.

All these four features are defined in MLVEC test.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ib041d9c2f203d7e582a3402bd61dd6a9eb18015a
2020-07-08 15:41:23 +08:00
Herman Chen
33e7e4c52a [mpi]: Remove unused H.264 mpi cfg structure
Remove sei / ref cfg in MppEncH264Cfg.

Change-Id: Iaef6a8a845b691dc21d0a6a6eca62e27bc5cf5a4
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-10 17:37:49 +08:00