Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
aom-rav1e
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Xiph.Org
aom-rav1e
Commits
86a67384
Commit
86a67384
authored
Jun 28, 2017
by
Tristan Matthews
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
analyzer: support high bitdepth and low bitdepth
Change-Id: I25ae2f7df1d1b53f3615a193017ab451afaf61fc
parent
d7b2be70
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
39 additions
and
13 deletions
+39
-13
examples/analyzer.cc
examples/analyzer.cc
+39
-13
No files found.
examples/analyzer.cc
View file @
86a67384
...
...
@@ -233,13 +233,17 @@ void AnalyzerPanel::setShowPlane(bool show_plane, int mask) {
void
AnalyzerPanel
::
render
()
{
aom_image_t
*
img
=
decoder
.
image
;
int
y_stride
=
img
->
stride
[
0
];
int
cb_stride
=
img
->
stride
[
1
];
int
cr_stride
=
img
->
stride
[
2
];
const
int
hbd
=
!!
(
img
->
fmt
&
AOM_IMG_FMT_HIGHBITDEPTH
);
int
y_stride
=
img
->
stride
[
0
]
>>
hbd
;
int
cb_stride
=
img
->
stride
[
1
]
>>
hbd
;
int
cr_stride
=
img
->
stride
[
2
]
>>
hbd
;
int
p_stride
=
3
*
getDisplayWidth
();
unsigned
char
*
y_row
=
img
->
planes
[
0
];
unsigned
char
*
cb_row
=
img
->
planes
[
1
];
unsigned
char
*
cr_row
=
img
->
planes
[
2
];
uint16_t
*
y_row16
=
reinterpret_cast
<
uint16_t
*>
(
y_row
);
uint16_t
*
cb_row16
=
reinterpret_cast
<
uint16_t
*>
(
cb_row
);
uint16_t
*
cr_row16
=
reinterpret_cast
<
uint16_t
*>
(
cr_row
);
unsigned
char
*
p_row
=
pixels
;
int
y_width_padding
=
decoder
.
getWidthPadding
();
int
cb_width_padding
=
y_width_padding
>>
1
;
...
...
@@ -251,6 +255,9 @@ void AnalyzerPanel::render() {
unsigned
char
*
y
=
y_row
-
y_stride
*
y_height_padding
;
unsigned
char
*
cb
=
cb_row
-
cb_stride
*
cb_height_padding
;
unsigned
char
*
cr
=
cr_row
-
cr_stride
*
cr_height_padding
;
uint16_t
*
y16
=
y_row16
-
y_stride
*
y_height_padding
;
uint16_t
*
cb16
=
cb_row16
-
cb_stride
*
cb_height_padding
;
uint16_t
*
cr16
=
cr_row16
-
cr_stride
*
cr_height_padding
;
unsigned
char
*
p
=
p_row
;
for
(
int
i
=
0
;
i
<
decoder
.
getWidth
();
i
++
)
{
int64_t
yval
;
...
...
@@ -260,9 +267,15 @@ void AnalyzerPanel::render() {
unsigned
rval
;
unsigned
gval
;
unsigned
bval
;
yval
=
*
(
y
-
y_width_padding
);
cbval
=
*
(
cb
-
cb_width_padding
);
crval
=
*
(
cr
-
cr_width_padding
);
if
(
hbd
)
{
yval
=
*
(
y16
-
y_width_padding
);
cbval
=
*
(
cb16
-
cb_width_padding
);
crval
=
*
(
cr16
-
cr_width_padding
);
}
else
{
yval
=
*
(
y
-
y_width_padding
);
cbval
=
*
(
cb
-
cb_width_padding
);
crval
=
*
(
cr
-
cr_width_padding
);
}
pmask
=
plane_mask
;
if
(
pmask
&
OD_LUMA_MASK
)
{
yval
-=
16
;
...
...
@@ -296,16 +309,29 @@ void AnalyzerPanel::render() {
}
px_row
+=
p_stride
;
}
int
dc
=
((
y
-
y_row
)
&
1
)
|
(
1
-
img
->
x_chroma_shift
);
y
++
;
cb
+=
dc
;
cr
+=
dc
;
if
(
hbd
)
{
int
dc
=
((
y16
-
y_row16
)
&
1
)
|
(
1
-
img
->
x_chroma_shift
);
y16
++
;
cb16
+=
dc
;
cr16
+=
dc
;
}
else
{
int
dc
=
((
y
-
y_row
)
&
1
)
|
(
1
-
img
->
x_chroma_shift
);
y
++
;
cb
+=
dc
;
cr
+=
dc
;
}
p
+=
zoom
*
3
;
}
int
dc
=
-
((
j
&
1
)
|
(
1
-
img
->
y_chroma_shift
));
y_row
+=
y_stride
;
cb_row
+=
dc
&
cb_stride
;
cr_row
+=
dc
&
cr_stride
;
if
(
hbd
)
{
y_row16
+=
y_stride
;
cb_row16
+=
dc
&
cb_stride
;
cr_row16
+=
dc
&
cr_stride
;
}
else
{
y_row
+=
y_stride
;
cb_row
+=
dc
&
cb_stride
;
cr_row
+=
dc
&
cr_stride
;
}
p_row
+=
zoom
*
p_stride
;
}
}
...
...
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