Skip to content

Commit

Permalink
Fixed AR 30 conversion
Browse files Browse the repository at this point in the history
  • Loading branch information
awxkee committed Jan 29, 2025
1 parent 8d8c001 commit 7117a96
Show file tree
Hide file tree
Showing 5 changed files with 261 additions and 198 deletions.
56 changes: 45 additions & 11 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ rayon = { version = "1.10.0", optional = true }
fast_transpose = "0.2.3"

[dev-dependencies]
rand = "0.8.5"
rand = "0.9.0"

[features]
default = ["avx", "sse", "rdm"]
Expand Down
63 changes: 11 additions & 52 deletions app/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ use std::io::Read;
use std::thread::available_parallelism;
use std::time::Instant;
use yuv_sys::{rs_I420ToRGB24, rs_NV12ToRGB24, rs_NV21ToABGR, rs_NV21ToRGB24, rs_RGB24ToI420};
use yuvutils_rs::{ab30_to_rgb8, bgr_to_rgba, bgra_to_rgba, convert_rgb16_to_f16, convert_rgb_f16_to_rgb, convert_rgb_f16_to_rgb16, convert_rgb_to_f16, gbr_to_rgb, mirror_rgb, rgb_to_bgra, rgb_to_gbr, rgb_to_sharp_yuv420, rgb_to_yuv400, rgb_to_yuv420, rgb_to_yuv420_p16, rgb_to_yuv422, rgb_to_yuv422_p16, rgb_to_yuv444, rgb_to_yuv444_p16, rgb_to_yuv_nv12, rgb_to_yuv_nv12_p16, rgb_to_yuv_nv16, rgb_to_yuv_nv21, rgb_to_yuv_nv24, rgba_to_bgr, rgba_to_bgra, rgba_to_yuv420, rgba_to_yuv422, rgba_to_yuv444, rgba_to_yuv_nv12, rgba_to_yuv_nv24, rotate_rgba, yuv400_to_rgb, yuv420_p16_to_rgb, yuv420_p16_to_rgb16, yuv420_to_rgb, yuv420_to_rgba, yuv420_to_yuyv422, yuv422_p16_to_rgb, yuv422_p16_to_rgb16, yuv422_to_rgb, yuv422_to_rgba, yuv444_p16_to_rgb16, yuv444_to_rgb, yuv444_to_rgba, yuv_nv12_p10_to_ab30, yuv_nv12_p10_to_rgb, yuv_nv12_to_rgb, yuv_nv12_to_rgb_p16, yuv_nv12_to_rgba, yuv_nv12_to_rgba_p16, yuv_nv16_to_rgb, yuv_nv21_to_rgb, yuv_nv24_to_rgb, yuv_nv24_to_rgba, yuyv422_to_rgb, yuyv422_to_yuv420, MirrorMode, Rgb30ByteOrder, RotationMode, SharpYuvGammaTransfer, YuvBiPlanarImageMut, YuvBytesPacking, YuvChromaSubsampling, YuvConversionMode, YuvEndianness, YuvGrayImageMut, YuvPackedImage, YuvPackedImageMut, YuvPlanarImageMut, YuvRange, YuvStandardMatrix};
use yuvutils_rs::{ab30_to_rgb8, bgr_to_rgba, bgra_to_rgba, convert_rgb16_to_f16, convert_rgb_f16_to_rgb, convert_rgb_f16_to_rgb16, convert_rgb_to_f16, gbr_to_rgb, mirror_rgb, rgb8_to_ar30, rgb8_to_ra30, rgb_to_bgra, rgb_to_gbr, rgb_to_sharp_yuv420, rgb_to_yuv400, rgb_to_yuv420, rgb_to_yuv420_p16, rgb_to_yuv422, rgb_to_yuv422_p16, rgb_to_yuv444, rgb_to_yuv444_p16, rgb_to_yuv_nv12, rgb_to_yuv_nv12_p16, rgb_to_yuv_nv16, rgb_to_yuv_nv21, rgb_to_yuv_nv24, rgba_to_bgr, rgba_to_bgra, rgba_to_yuv420, rgba_to_yuv422, rgba_to_yuv444, rgba_to_yuv_nv12, rgba_to_yuv_nv24, rotate_rgba, yuv400_to_rgb, yuv420_p16_to_rgb, yuv420_p16_to_rgb16, yuv420_to_rgb, yuv420_to_rgba, yuv420_to_yuyv422, yuv422_p16_to_rgb, yuv422_p16_to_rgb16, yuv422_to_rgb, yuv422_to_rgba, yuv444_p16_to_rgb16, yuv444_to_rgb, yuv444_to_rgba, yuv_nv12_p10_to_ab30, yuv_nv12_p10_to_rgb, yuv_nv12_to_rgb, yuv_nv12_to_rgb_p16, yuv_nv12_to_rgba, yuv_nv12_to_rgba_p16, yuv_nv16_to_rgb, yuv_nv21_to_rgb, yuv_nv24_to_rgb, yuv_nv24_to_rgba, yuyv422_to_rgb, yuyv422_to_yuv420, MirrorMode, Rgb30ByteOrder, RotationMode, SharpYuvGammaTransfer, YuvBiPlanarImageMut, YuvBytesPacking, YuvChromaSubsampling, YuvConversionMode, YuvEndianness, YuvGrayImageMut, YuvPackedImage, YuvPackedImageMut, YuvPlanarImageMut, YuvRange, YuvStandardMatrix};

fn read_file_bytes(file_path: &str) -> Result<Vec<u8>, String> {
// Open the file
Expand Down Expand Up @@ -222,59 +222,18 @@ fn main() {

let mut ar30 = vec![0u8; width as usize * height as usize * 4];

// rgb8_to_ra30(
// &mut ar30,
// width,
// Rgb30ByteOrder::Host,
// &src_bytes,
// rgba_stride as u32, _mm256_slli_epi16::<2>(v)

// width,
// height,
// )
// .unwrap();

// yuv422_p16_to_ab30(
// &fixed_planar,
// &mut ar30,
// width,
// Rgb30ByteOrder::Host,
// 10,
// YuvRange::Limited,
// YuvStandardMatrix::Bt601,
// YuvEndianness::LittleEndian,
// YuvBytesPacking::LeastSignificantBytes,
// )
// .unwrap();
// rgba.fill(0);
// ra30_to_rgb8(
// &ar30,
// width,
// Rgb30ByteOrder::Host,
// &mut rgba,
// rgba_stride as u32,
// width,
// height,
// )
// .unwrap();
let start_time = Instant::now();

// let components = 4;
// let rgba_stride = width as usize * 4;
// let mut rgba = vec![0u8; height as usize * rgba_stride];

// bytes_16.fill(0);

yuv_nv12_p10_to_ab30(
&fixed_biplanar,
rgb8_to_ar30(
&mut ar30,
width * 4 ,
width * 4,
Rgb30ByteOrder::Host,
YuvRange::Full,
YuvStandardMatrix::Bt2020,
YuvEndianness::LittleEndian,
YuvBytesPacking::MostSignificantBytes,
).unwrap();
&src_bytes,
rgba_stride as u32,
width,
height,
)
.unwrap();

let start_time = Instant::now();

rgba.fill(0);
ab30_to_rgb8(&ar30, width * 4, Rgb30ByteOrder::Host, &mut rgba, rgba_stride as u32, width, height).unwrap();
Expand Down
1 change: 1 addition & 0 deletions src/ar30_rgb.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ use crate::yuv_error::check_rgba_destination;
use crate::yuv_support::{Rgb30, YuvSourceChannels};
use crate::{Rgb30ByteOrder, YuvError};

#[inline]
fn ar30_to_rgb8_impl<
const AR30_LAYOUT: usize,
const AR30_BYTE_ORDER: usize,
Expand Down
Loading

0 comments on commit 7117a96

Please sign in to comment.