mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 12:23:15 +00:00
LibGfx/JPEGLoader: Extract inverse_dct_8x8() function
No behavior change.
This commit is contained in:
parent
494fc1234e
commit
d89e42902e
|
@ -1412,7 +1412,7 @@ static ErrorOr<void> dequantize(JPEGLoadingContext& context, Vector<Macroblock>&
|
|||
return {};
|
||||
}
|
||||
|
||||
static void inverse_dct(JPEGLoadingContext const& context, Vector<Macroblock>& macroblocks)
|
||||
static void inverse_dct_8x8(i16* block_component)
|
||||
{
|
||||
static float const m0 = 2.0f * AK::cos(1.0f / 16.0f * 2.0f * AK::Pi<float>);
|
||||
static float const m1 = 2.0f * AK::cos(2.0f / 16.0f * 2.0f * AK::Pi<float>);
|
||||
|
@ -1429,15 +1429,6 @@ static void inverse_dct(JPEGLoadingContext const& context, Vector<Macroblock>& m
|
|||
static float const s6 = AK::cos(6.0f / 16.0f * AK::Pi<float>) / 2.0f;
|
||||
static float const s7 = AK::cos(7.0f / 16.0f * AK::Pi<float>) / 2.0f;
|
||||
|
||||
for (u32 vcursor = 0; vcursor < context.mblock_meta.vcount; vcursor += context.sampling_factors.vertical) {
|
||||
for (u32 hcursor = 0; hcursor < context.mblock_meta.hcount; hcursor += context.sampling_factors.horizontal) {
|
||||
for (u32 component_i = 0; component_i < context.components.size(); component_i++) {
|
||||
auto& component = context.components[component_i];
|
||||
for (u8 vfactor_i = 0; vfactor_i < component.sampling_factors.vertical; vfactor_i++) {
|
||||
for (u8 hfactor_i = 0; hfactor_i < component.sampling_factors.horizontal; hfactor_i++) {
|
||||
u32 macroblock_index = (vcursor + vfactor_i) * context.mblock_meta.hpadded_count + (hfactor_i + hcursor);
|
||||
Macroblock& block = macroblocks[macroblock_index];
|
||||
auto* block_component = get_component(block, component_i);
|
||||
for (u32 k = 0; k < 8; ++k) {
|
||||
float const g0 = block_component[0 * 8 + k] * s0;
|
||||
float const g1 = block_component[4 * 8 + k] * s4;
|
||||
|
@ -1573,6 +1564,20 @@ static void inverse_dct(JPEGLoadingContext const& context, Vector<Macroblock>& m
|
|||
block_component[l * 8 + 7] = b0 - b7;
|
||||
}
|
||||
}
|
||||
|
||||
static void inverse_dct(JPEGLoadingContext const& context, Vector<Macroblock>& macroblocks)
|
||||
{
|
||||
for (u32 vcursor = 0; vcursor < context.mblock_meta.vcount; vcursor += context.sampling_factors.vertical) {
|
||||
for (u32 hcursor = 0; hcursor < context.mblock_meta.hcount; hcursor += context.sampling_factors.horizontal) {
|
||||
for (u32 component_i = 0; component_i < context.components.size(); component_i++) {
|
||||
auto& component = context.components[component_i];
|
||||
for (u8 vfactor_i = 0; vfactor_i < component.sampling_factors.vertical; vfactor_i++) {
|
||||
for (u8 hfactor_i = 0; hfactor_i < component.sampling_factors.horizontal; hfactor_i++) {
|
||||
u32 macroblock_index = (vcursor + vfactor_i) * context.mblock_meta.hpadded_count + (hfactor_i + hcursor);
|
||||
Macroblock& block = macroblocks[macroblock_index];
|
||||
auto* block_component = get_component(block, component_i);
|
||||
inverse_dct_8x8(block_component);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue