verilog - RGB 到 YUV 的转换方程
问题描述
我试图理解 RGB 到 YUV 的转换方程。我从https://sistenix.com/rgb2ycbcr.html得到了一些实现。
R<<6 + R<<1 ?
(65.7388*R)/256 如何表示为 R<<6 + R<<1 ?
解决方案
你缺少一部分,(65.7388*R)/256
变成(R<<6 + R<<1)>>8
这些步骤实际上非常简单:逼近最接近的整数(65.7388*R)/256
就(66*R)/256
可以写成(64*R + 2*R)/256
. 乘以 2 等于向左移动,因此2*R
变为R<<1
并64*R
变为R<<6
。同理,除以 2 等于右移,因此/256
变为>>8
推荐阅读
- regex - 两个正则表达式模式之间的不同行为
- javascript - Highmaps:当 setOptions 不起作用时,将句点更改为逗号
- react-native - 经常在带有 shadow-cljs 和 React Native 的 Cider 中看到“REPL 命令超时”。必须重启模拟器才能修复
- html - 为什么图像离开页面,而没有其他内容
- python - 如何在 tkinter 画布上绘制网格
- python - 为什么数据框在使用字符串的dtype时继续以整数形式读取文件
- javascript - 如何从 html 文件中获取控制器中 $scope.foo 的值
- android - 当点击通知应用程序不运行 Android [Xamarin.Forms] 中的 MainActivity
- python - 值错误没有足够的值来解压
- java - 从 for 循环内的二维数组中删除行后索引超出范围