Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
3d69dd65
Commit
3d69dd65
authored
Apr 25, 2017
by
Alexandra Hájková
Committed by
Martin Storsjö
Apr 25, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hevc: Add support for bitdepth 10 for IDCT DC
Signed-off-by:
Martin Storsjö
<
martin@martin.st
>
parent
358adef0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
12 deletions
+37
-12
hevc_idct.S
libavcodec/arm/hevc_idct.S
+28
-12
hevcdsp_init_arm.c
libavcodec/arm/hevcdsp_init_arm.c
+9
-0
No files found.
libavcodec/arm/hevc_idct.S
View file @
3d69dd65
...
@@ -30,26 +30,29 @@ const trans, align=4
...
@@ -30,26 +30,29 @@ const trans, align=4
.short 57, 43, 25, 9
.short 57, 43, 25, 9
endconst
endconst
function ff_hevc_idct_4x4_dc_8_neon, export=1
.macro idct_4x4_dc bitdepth
function ff_hevc_idct_4x4_dc_\bitdepth\()_neon, export=1
ldrsh r1, [r0]
ldrsh r1, [r0]
ldr r2, =
0x20
ldr r2, =
(1 << (13 - \bitdepth))
add r1, #1
add r1, #1
asr r1, #1
asr r1, #1
add r1, r2
add r1, r2
asr r1, #
6
asr r1, #
(14 - \bitdepth)
vdup.16 q0, r1
vdup.16 q0, r1
vdup.16 q1, r1
vdup.16 q1, r1
vst1.16 {q0, q1}, [r0, :128]
vst1.16 {q0, q1}, [r0, :128]
bx lr
bx lr
endfunc
endfunc
.endm
function ff_hevc_idct_8x8_dc_8_neon, export=1
.macro idct_8x8_dc bitdepth
function ff_hevc_idct_8x8_dc_\bitdepth\()_neon, export=1
ldrsh r1, [r0]
ldrsh r1, [r0]
ldr r2, =
0x20
ldr r2, =
(1 << (13 - \bitdepth))
add r1, #1
add r1, #1
asr r1, #1
asr r1, #1
add r1, r2
add r1, r2
asr r1, #
6
asr r1, #
(14 - \bitdepth)
vdup.16 q8, r1
vdup.16 q8, r1
vdup.16 q9, r1
vdup.16 q9, r1
vmov.16 q10, q8
vmov.16 q10, q8
...
@@ -61,14 +64,16 @@ function ff_hevc_idct_8x8_dc_8_neon, export=1
...
@@ -61,14 +64,16 @@ function ff_hevc_idct_8x8_dc_8_neon, export=1
vstm r0, {q8-q15}
vstm r0, {q8-q15}
bx lr
bx lr
endfunc
endfunc
.endm
function ff_hevc_idct_16x16_dc_8_neon, export=1
.macro idct_16x16_dc bitdepth
function ff_hevc_idct_16x16_dc_\bitdepth\()_neon, export=1
ldrsh r1, [r0]
ldrsh r1, [r0]
ldr r2, =
0x20
ldr r2, =
(1 << (13 - \bitdepth))
add r1, #1
add r1, #1
asr r1, #1
asr r1, #1
add r1, r2
add r1, r2
asr r1, #
6
asr r1, #
(14 - \bitdepth)
vdup.16 q8, r1
vdup.16 q8, r1
vdup.16 q9, r1
vdup.16 q9, r1
vmov.16 q10, q8
vmov.16 q10, q8
...
@@ -83,14 +88,16 @@ function ff_hevc_idct_16x16_dc_8_neon, export=1
...
@@ -83,14 +88,16 @@ function ff_hevc_idct_16x16_dc_8_neon, export=1
vstm r0, {q8-q15}
vstm r0, {q8-q15}
bx lr
bx lr
endfunc
endfunc
.endm
function ff_hevc_idct_32x32_dc_8_neon, export=1
.macro idct_32x32_dc bitdepth
function ff_hevc_idct_32x32_dc_\bitdepth\()_neon, export=1
ldrsh r1, [r0]
ldrsh r1, [r0]
ldr r2, =
0x20
ldr r2, =
(1 << (13 - \bitdepth))
add r1, #1
add r1, #1
asr r1, #1
asr r1, #1
add r1, r2
add r1, r2
asr r1, #
6
asr r1, #
(14 - \bitdepth)
mov r3, #16
mov r3, #16
vdup.16 q8, r1
vdup.16 q8, r1
vdup.16 q9, r1
vdup.16 q9, r1
...
@@ -105,6 +112,7 @@ function ff_hevc_idct_32x32_dc_8_neon, export=1
...
@@ -105,6 +112,7 @@ function ff_hevc_idct_32x32_dc_8_neon, export=1
bne 1b
bne 1b
bx lr
bx lr
endfunc
endfunc
.endm
.macro sum_sub out, in, c, op
.macro sum_sub out, in, c, op
.ifc \op, +
.ifc \op, +
...
@@ -496,8 +504,16 @@ tr_16x4 secondpass_10, 20 - 10
...
@@ -496,8 +504,16 @@ tr_16x4 secondpass_10, 20 - 10
.ltorg
.ltorg
idct_4x4 8
idct_4x4 8
idct_4x4_dc 8
idct_4x4 10
idct_4x4 10
idct_4x4_dc 10
idct_8x8 8
idct_8x8 8
idct_8x8_dc 8
idct_8x8 10
idct_8x8 10
idct_8x8_dc 10
idct_16x16 8
idct_16x16 8
idct_16x16_dc 8
idct_16x16 10
idct_16x16 10
idct_16x16_dc 10
idct_32x32_dc 8
idct_32x32_dc 10
libavcodec/arm/hevcdsp_init_arm.c
View file @
3d69dd65
...
@@ -29,6 +29,10 @@ void ff_hevc_idct_4x4_dc_8_neon(int16_t *coeffs);
...
@@ -29,6 +29,10 @@ void ff_hevc_idct_4x4_dc_8_neon(int16_t *coeffs);
void
ff_hevc_idct_8x8_dc_8_neon
(
int16_t
*
coeffs
);
void
ff_hevc_idct_8x8_dc_8_neon
(
int16_t
*
coeffs
);
void
ff_hevc_idct_16x16_dc_8_neon
(
int16_t
*
coeffs
);
void
ff_hevc_idct_16x16_dc_8_neon
(
int16_t
*
coeffs
);
void
ff_hevc_idct_32x32_dc_8_neon
(
int16_t
*
coeffs
);
void
ff_hevc_idct_32x32_dc_8_neon
(
int16_t
*
coeffs
);
void
ff_hevc_idct_4x4_dc_10_neon
(
int16_t
*
coeffs
);
void
ff_hevc_idct_8x8_dc_10_neon
(
int16_t
*
coeffs
);
void
ff_hevc_idct_16x16_dc_10_neon
(
int16_t
*
coeffs
);
void
ff_hevc_idct_32x32_dc_10_neon
(
int16_t
*
coeffs
);
void
ff_hevc_idct_4x4_8_neon
(
int16_t
*
coeffs
,
int
col_limit
);
void
ff_hevc_idct_4x4_8_neon
(
int16_t
*
coeffs
,
int
col_limit
);
void
ff_hevc_idct_8x8_8_neon
(
int16_t
*
coeffs
,
int
col_limit
);
void
ff_hevc_idct_8x8_8_neon
(
int16_t
*
coeffs
,
int
col_limit
);
...
@@ -53,6 +57,11 @@ av_cold void ff_hevc_dsp_init_arm(HEVCDSPContext *c, int bit_depth)
...
@@ -53,6 +57,11 @@ av_cold void ff_hevc_dsp_init_arm(HEVCDSPContext *c, int bit_depth)
c
->
idct
[
2
]
=
ff_hevc_idct_16x16_8_neon
;
c
->
idct
[
2
]
=
ff_hevc_idct_16x16_8_neon
;
}
}
if
(
bit_depth
==
10
)
{
if
(
bit_depth
==
10
)
{
c
->
idct_dc
[
0
]
=
ff_hevc_idct_4x4_dc_10_neon
;
c
->
idct_dc
[
1
]
=
ff_hevc_idct_8x8_dc_10_neon
;
c
->
idct_dc
[
2
]
=
ff_hevc_idct_16x16_dc_10_neon
;
c
->
idct_dc
[
3
]
=
ff_hevc_idct_32x32_dc_10_neon
;
c
->
idct
[
0
]
=
ff_hevc_idct_4x4_10_neon
;
c
->
idct
[
0
]
=
ff_hevc_idct_4x4_10_neon
;
c
->
idct
[
1
]
=
ff_hevc_idct_8x8_10_neon
;
c
->
idct
[
1
]
=
ff_hevc_idct_8x8_10_neon
;
c
->
idct
[
2
]
=
ff_hevc_idct_16x16_10_neon
;
c
->
idct
[
2
]
=
ff_hevc_idct_16x16_10_neon
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment