Commit graph

166 commits

Author SHA1 Message Date
Herman Chen
067de5647a feat[mpp_enc_cfg]: Change to object implement
Modification Point:
1. Use enc configure object macro.
2. Use kmpp_obj_update to sync user cfg setup.
3. Distinguish between user mode and kernel mode for enc obj.
4. EncImpl only check codec related SET_CFG result.
5. Refactor SET_CFG flow.
6. Adapter jpeg q_mode feature.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
Change-Id: I2856acdf863189fdaa29121ad8bc007fe90b5ab5
2025-10-24 11:18:37 +08:00
Yandong Lin
c1f1c12dcf fix[h265d]: Fix rps data update issue
1. Add rps_update_flag to indicate whether to update rps.
2. Fix global cfg data len for vdpu384a.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I1c664c99f34f6dea940368496175273042b48b18
2025-09-30 15:05:34 +08:00
Yanjun Liao
05f59be432 fix[hal_h265e]: Fix nal type in tsvc mode
Platform: vepu_580/540/510
Spec: h265e

In tsvc mode, top p-frames not used as reference frames.

Change-Id: I0b285e5ed753e73321fd728389195f0e5b118874
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2025-07-25 11:02:42 +08:00
Hongjin Li
fa7f83351d fix[av1_syntax]: Fix array out-of-bounds issue.
Platform: General
Spec: av1

Reported-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I338545eb1fdb7e726c8c6f81c103061fd0dc9c9d
2025-04-01 15:04:54 +08:00
Hongjin Li
ad26e20d69 feat[vdpu384a]: Support RV1126B new features
Platform: 1126B, Support h265/h264

1. H264/H265 CABAC Table Hardware Implementation
2. update h265/h264 global Parameters
3. h265/h264 update rcb buffer size
4. update fbc/pp/sal chn control

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: Ia22d30272f7c20c6ab33850881b6a0135a4264b2
2025-03-04 14:13:18 +08:00
Yanjun Liao
3ea5eb5a51 fix[mpp_enc]: Fix some exceptions when force pskip
1. Add rc model in when force skip frm
2. Fix ref frm error when force pskip
3. Disable pskip when cfg force idr
4. Support pskip frm as ref frm
5. Support force skip frm as is_ref or non_ref

Change-Id: Ib138ab75a9df2c4521cb376e3a3d7fd30565ecd9
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2025-01-23 18:04:48 +08:00
Yanjun Liao
bbe1a74bde feat[enc]: Support use frame meta to cfg pskip
Use case:
mpp_meta_set_s32(meta, KEY_INPUT_PSKIP, 1);

Change-Id: I823f46e221b67d23bfbd250e7683b357ead988ab
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-10-12 15:54:12 +08:00
Yandong Lin
d96a88673c feat[h264d]: support hdr meta parse
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Id17781edfe480c859a2e89909e517030ea07c43b
2024-08-02 14:26:51 +08:00
Hongjin Li
1e4b740e55 fix[av1]: Fix delta_q value read issue
related issue: https://redmine.rock-chips.com/issues/470362

Change-Id: I26910456b05eb54a29a1a25c2ff061dfead7f1f4
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2024-03-20 16:27:24 +08:00
Johnson Ding
6627f4667b feat[jpeg]: Add VPU720 JPEG support
Change-Id: Ic614a59b292ab9a511f56e46ebbe516e484bd0f2
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-03-08 17:44:01 +08:00
Johnson Ding
0954d08770 [jpege]: Support various output chroma formats
Change-Id: I194a53fb3c04fd62005cd83ac53c6229c94c9ba6
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-03-08 11:09:31 +08:00
Hongjin Li
61650a170e fix[av1d]: Fix compatibility issues
For av1, fix compatibility issues between rk3576 and rk3588

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: Ia779b06cda11366f69612663efd4e69c4b6b0b67
2024-03-06 14:33:37 +08:00
Herman Chen
02a35cb871 fix: Fix clerical error
fix denorminator to denominator

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I6e9deed4fe3bcdc1d2f7d56f3dccb87607d576bf
2024-03-05 11:31:47 +08:00
Hongjin Li
7c206495e7 fix[vdpu383]: Fix av1 global params issue
Change-Id: Ic0438d59202e538f227afe8d6a98e2eefe952e06
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2024-03-01 16:50:57 +08:00
Hongjin Li
39b68064c8 feat[vdpu383]: Add vdpu383 av1 module
Support FBC, tile4x4, 400, 420

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
Change-Id: Ie0c1ab47447c605b96f75313734db8bab46e77c8
2024-03-01 14:34:47 +08:00
Hongjin Li
13915219f3 feat[vdpu383]: Add vdpu383 avs2 module
Support FBC, tile4x4, 420

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I31b13dd1a672adc0ba6b35fd31aa039ef1579eb0
2024-02-29 20:20:13 +08:00
Hongjin Li
3f9fd59e00 feat[vdpu383]: Add vdpu383 H.264 module
Support FBC, tile4x4, 420, 422

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: Id85bbf12c0f9c5e0cd11109e1f942980ae0341ff
2024-02-29 20:20:13 +08:00
Hongjin Li
fd8d21ccf3 feat[vdpu383]: Add vdpu383 H.265 module
Support FBC, tile4x4, 420, 422, 444

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: I2c5281a70bbd1cce775fabfce83d6fb6abdd8fc8
2024-02-29 20:20:13 +08:00
Johnson Ding
06d8b3958a fix[h265e]: Amend temporal_id to stream
Change-Id: Icdf177c5a144c0ed611d9df993183619dcf2f9ff
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-01-30 11:36:39 +08:00
Yanjun Liao
ccf32c1da3 feat[mpp_enc]: Add YUV400 support for vepu580/540
Add VEPU540/580 YUV400 format support in H.264 and H.265

Change-Id: Id62102dcdc42afea5c3485224d9b4e5bf25efbac
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-01-10 18:14:23 +08:00
Herman Chen
1a4f3d456c feat[vepu580]: Support frame parallel on vepu580
1. Add dpb hal_start/hal_end function to mark hal usage.
2. Use dpb_used in the dpb process flow and hal_used in hal flow.
3. Send dpb ptr to hal for hal notify.
4. Use reg_idx in enc_task to find the register buffer.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ib728a896826a3039682de75d6a8cc2d4dfe04e3d
2023-12-21 15:57:22 +08:00
Yandong Lin
5d81d75ba8 [h265d]: fix ref err with CRA frame issue
Flush frame when there is a frame in the dpb with poc > cur poc.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Ib3a1f0a8bcdf1fddfa1f5b3928ea1dfd43bd4635
2023-02-16 17:21:13 +08:00
Rimon Xu
04b0a9f279 [h264d_parser]: num_views_minus1 use RK_S8 instead of RK_U8
num_views_minus1 maybe is -1, when type is RK_U8, the value is
255, num_views will be 256, correct num_views_minus1 should be
-1, num_views is 0.
crash backtrace:
0)  0x0000007f99216b64 in fill_picparams (p_Vid=0xd8065a0, pp=pp@entry=0xd8089c4)
    at mpp/codec/dec/h264/h264d_fill.c:229
1)  0x0000007f9921632c in init_picture (currSlice=0xd805dc0)
    at mpp/codec/dec/h264/h264d_init.c:2066
2)  0x0000007f9920ad38 in parse_loop (p_Dec=p_Dec@entry=0xd803c00)
    at mpp/codec/dec/h264/h264d_parse.c:929
3)  0x0000007f99208abc in h264d_parse (decoder=0xd803c00, in_task=0xd80b770)
    at mpp/codec/dec/h264/h264d_api.c:607

Change-Id: I2386f3a215027d2cda9a189bc49806f6358cf9ef
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
2023-01-09 09:48:22 +08:00
Johnson Ding
a6917d23cb [avs2d]: Fix buffer leak issue
When decoding S picture, reference list with be force to set to only one
left. Slot flag should be cleared for the already marked buffers at
reference list. But decoded picture may not be correct if following AVS2
specification. So for S picture, keep those reference frames found by
doi_of_ref and replace the content of the first reference frame with
scene ref only.

Change-Id: I9f84fdd55acfc9cf9d65deb065ccf97c36de1321
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2022-12-09 18:08:47 +08:00
Johnson Ding
477a35d4f0 [avs2d]: Fix reference setting
When scene reference is used, ref list should not be modified directly,
otherwise slot options will encountering error.

Change-Id: I23627fc56c5d8e25e54e72868c926391127e31e6
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2022-12-09 18:02:31 +08:00
xueman.ruan
c055b55e91 [jpegd]: Disable SOF markers but baseline DCT.
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Change-Id: I1479fca1722c69b38d09a3c05a21a4fb10ed7e22
2022-12-08 15:05:22 +08:00
Yandong Lin
6f5f429249 [mpp_dec]: support hdr meta data decode
1.support parsing dolby meta data from h265 and av1 streams.
2.support parsing vivid meta data from h265, and todo for avs2.

The hdr meta data will be append at the end of the frame data.
So it need a extra 4k buffer to store the hdr meta data.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I50432633a7fb57c6f340e1966866f931bf7d8c43
2022-11-25 10:23:00 +08:00
xueman.ruan
edd6a71d8c [jpege_api]: fix jpeg rot error.
1. fix jpeg rotation cfg error
2. caused by commit I01c0b9187a18851354e81b5f08afc6dcaaba8365

Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Change-Id: Iab907faf92b8d3ada6311a2ec37fde27227bb081
2022-11-04 17:28:36 +08:00
Yandong Lin
3adde926e2 [avs]: Add avs module
NOTE: I frame header decoding should check stream version.

Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
Change-Id: I1c8276f4499d73e3b60d582890037dec376e136f
2022-10-13 15:16:13 +08:00
sayon.chen
b0ae2b7122 [h265d_param]: DXVA slice param use dynamic malloc
Change-Id: Id362b642121502786497bf57223356723b9838f7
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2022-09-24 10:03:57 +08:00
Johnson Ding
0f11ae4580 [avs2d]: Add AVS2 parser api
Change-Id: I18b890698b236d47189b5e2545ea251deeabf6fd
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
Signed-off-by: Xingwen Fang <fxw@rock-chips.com>
2022-07-19 15:24:34 +08:00
xueman.ruan
5e96daffb2 [h265d_parser]: avoid segment fault
pps_id out of range result in segment fault.

Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Change-Id: I0281eb83584d265d5a016fd157c24f3f8917dee9
2022-06-30 18:31:09 +08:00
Chen Jinsen
a7dd44baa9 [h265d]: Add few more checks for invalid parameters in sps
Following elements didn't have a bound check in SPS as spec doesn't list
the bounds on these explicitly.

log2_min_cb_size, log2_diff_max_min_coding_block_size,
log2_min_tb_size and log2_diff_max_min_transform_block_size

Added appopriate error checks on these fields

Signed-off-by: Chen Jinsen <kevin.chen@rock-chips.com>
Change-Id: I4762f543726650855e5cd333c48a7c41cf0fee0f
2022-01-25 09:54:10 +08:00
sayon.chen
55b425c97b [av1d]: Add av1 parser api
Change-Id: Iff3c205d34cd8d8c2074de42eadc8418f5144a42
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2022-01-21 11:20:02 +08:00
Ding Wei
e81d82173b [vp9d]: Support multi-core mode
tips:
    vp9 need poc mode for detect current core
refer regs:
    reg65 reg75 reg95 reg96 reg97 reg98 reg99 reg100

Change-Id: Ia42af0cfe018488990b1678665a703c34173f095
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2021-12-10 17:49:14 +08:00
Herman Chen
0bc33cf484 [hal_task]: Remove hal_enc_task.h
Change-Id: I6fefe59d189c80981a253d249afd8364fe9b7242
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-06 17:44:49 +08:00
Yandong Lin
c1cec3933c [h264d_parser]: optimize the size of some struct
optimize the size of some structures as blow:
1. H264dVideoCtx_t
2. H264dCurCtx_t
3. DXVA_Slice_H264_Long

Change-Id: If3d7ca2f8d92d2a590767a97324537700848ab90
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2021-08-23 14:05:50 +08:00
sayon.chen
b86aa171f3 [h265d]: Support hw resolution capability check
Add hw capability to parser and check resolustion based on
hardware capability.

Change-Id: I6f7ff7a56d0e46d6ca9cb0dcd547e74fd15d7bc1
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2021-06-18 10:23:29 +08:00
Ding Wei
7f1b5ab31a [h264d]: Optimize the sps&&pps reference codes
if sps_id&&pps_id has not change,then regards as not need to
refill spspps buffer data.

Change-Id: I7616d913800b1b4865999f11ce6fb7e71fabc41f
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2021-05-13 17:48:37 +08:00
sayon.chen
a73905adae [h265d_34x]: Ps hal_buf not update every frame
Change-Id: If925584df1bff7efc2ce7f44268b1f3a2bcf3f7b
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2021-05-10 15:50:49 +08:00
Herman Chen
f35aae8a04 [jpege]: Add jpeg slice encoding mode
Change-Id: Ib0a919bd2e1c4da5968a0d7f378e455e9a40367c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-03-25 20:57:59 +08:00
Yandong Lin
7ae6041138 [jpege_vepu]: Support rotation for jpeg enc
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Id230d61801e7dfb4d3fa8ae6c81955ae8255fad3
2021-02-21 11:33:33 +08:00
Johnson Ding
597ca81624 [jpegd]: Add table entries counter
Change-Id: Iae98752d7977af5f03612cb7bfbd53e77f39a8bd
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2021-01-05 18:45:14 +08:00
Johnson Ding
fd7db64eed [jpegd]: Call RKV jpegd prior to old jpegd
Change-Id: I4af49a28a6ce23289c690b5ff185a863e99f8926
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2021-01-05 18:44:54 +08:00
Johnson Ding
149bb3d090 [jpegd]: Add RKV jpegd implementation
Change-Id: I10497fea20a0a4bbd5bd32a4d3a3e398f6e1aa95
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2021-01-05 18:44:45 +08:00
sayon.chen
efd6e8e8d7 [vdpu34x]: Support error mode process
Change-Id: Iaac11b645261a8cb69f135963c3b8b8ff7b9284c
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-12-17 14:33:29 +08:00
Yandong Lin
ad8d8a669a [vp9d_vdpu34x]: Vp9d support hw prob
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I6b4eadad2ea4e08eef8816f76bbabe3ec3f7494c
2020-12-17 14:33:29 +08:00
sayon.chen
416aae9d4e [hal_jpege]: Support slice encode for low delay
When jpeg encoder enable partition encoding the following items should
be check:

1. IMPORTANT: This implement is only for single encoder usage that is
hardware can only support this feature without context swith between
different frame encoding.

2. Check input split mode and split arg.

3. Update bitstream address and msb/lsb for each partition encoding.

4. Update mcu height for each encoding.

5. Change restart marker for each encoding.

Change-Id: Ie4e4dea4f66d4f0a1aeca15c8b542d8ada723477
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-12-12 17:13:30 +08:00
sayon.chen
546c3f6130 [hevc_vepu54x]: Support vepu540 regs config
Change-Id: I8c7a5ab0f8d326c14a74b3fa387316b78e502574
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-11-16 14:46:05 +08:00
Herman Chen
60b6800287 [rc]: Remove unused rc code
Change-Id: I27a62c48b757ddc90924691522eb7aa881e94b62
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-10 16:00:38 +08:00