485 подписчиков

Отключаем пиксели для экономии заряда

Пример отключения пикселей
Пример отключения пикселей

С момента появления первых телефонов многих пользователей и производителей посещала мысль о том, чтобы улучшить показатель времени автономной работы телефона от одного заряда батареи. Кто-то использует для этого быструю зарядку, которая "обещает" зарядить телефон за 40, 35, 30, а то и 25 минут от 20 до 100%. А кто-то использует повербанки или более удобные чехлы-повербанки (https://dzen.ru/a/Yxg6bWNSE0aSQu9t?share_to=link). Также на телефоны стали ставить более энергоэффективные чипы, память и экраны, что позволило улучшить показатель автономной работы. В цикле статей мы сделаем упор именно на экране телефона. Чем же экраны телефонов так примечательны и почему мы будем говорить именно о них?

Начнем с того, что все экраны состоят из мельчайших лампочек - пикселей (сильно упрощенно), которые, в свою очередь, состоят из суб-пикселей разного цвета (красный, синий и зеленый). Чем ярче светят пиксели или суб-пиксели, тем лучше видно информацию на экране в солнечный день, но тем интенсивнее забирается заряд из аккумулятора телефона. Для решения проблемы излишнего потребления заряда телефона производители предпринимают различные ухищрения: ставят датчики, которые позволяют менять яркость экрана в зависимости от яркости окружающего света, динамически меняют частоту развертки экрана в зависимости от того читаете ли Вы текст или смотрите видео, а также применяют разные технологии изготовления экрана. Самые распространенные экраны, которые ставятся на телефоны - это экраны выполненные по технологиям IPS и AMOLED. AMOLED-экраны могут также, как IPS-экраны динамически снижать свою яркость и частоту развертки, что позволяет снизить потребление заряда. Но, в отличие от IPS-экранов, они также умеют по-отдельности отключать каждый суб-пиксель или весь пиксель целиком, когда требуется отобразить конкретный цвет или область экрана отображает только черный цвет (AMOLED - https://dzen.ru/media/id/626c4d4ccf4d6a5464cc7d6a/amoledekran-pod-h160kratnym-mikroskopom-vygliadit-ochen-neobychno-kto-by-mog-626c4f443a809e09ef0c7a7f ; IPS - https://dzen.ru/media/id/626c4d4ccf4d6a5464cc7d6a/ipsekran-pod-h160kratnym-mikroskopom-my-vse-polzuemsia-telefonami-626ccbd798f1253f5458b6f3). При этом отключенный суб-пиксель или весь пиксель AMOLED-экрана перестает потреблять энергию. А вот это уже интересная особенность, которая может позволить снизить потребление экраном заряда батареи.

Существует класс программ для телефонов, которые позволяют накладывать поверх выводимого изображения фильтр в виде черной сетки с различным шагом и размером черных областей. Как мы выяснили ранее черная область для AMOLED-экрана равна отключенному пикселю (AMOLED - ttps://dzen.ru/media/id/626c4d4ccf4d6a5464cc7d6a/amoledekran-pod-h160kratnym-mikroskopom-vygliadit-ochen-neobychno-kto-by-mog-626c4f443a809e09ef0c7a7f). При этом чем чаще шаг черных областей, которые генерирует программа, тем больше пикселей будут отключены и тем сильнее будет уменьшено количество энергии затраченное на отображение информации на экране телефона. Это все теоретически, а что же на практике? Мы будем рассматривать программы, которые созданы для систем на основе Android. Я выбрал два представителя одни из которых уже давно не обновляется - Pixel Battery Saver, а второй - Pixel Filter - поддерживается до сих пор и, кстати, имеет высокую оценку в магазине приложений, что очень обнадеживает. Все эксперименты будем выполнять на телефоне Xiaomi Redmi Note 10 4/64 с кастомной прошивкой Pixel Experience на основе Android 13 собранной в ноябре (https://dzen.ru/a/Y3EuVCJeATTtoY8W?share_to=link).

Рис. 2. Pixel Filter - настройки программы
Рис. 2. Pixel Filter - настройки программы

Сильно углубляться в настройки данных программ мы не будем, так как их и не особо-то много, но основные моменты отметим. Во-первых, как я и написал выше Pixel Battery Saver (Рис. 1а и б) не обновляется аж с 2015 года, что может вызвать сомнения о его работе на современных версиях Android и программа не может быть скачана с магазина, а вот Pixel Filter (Рис. 2) мало того, что обновляется, так еще и с высокой долей вероятности будет корректно работать, скажем, на Android 13. Однако, забегая вперед, отмечу, что на системе на основе Android 13 обе программы корректно работают и ни каких базовых проблем с их использованием я не нашел. Во-вторых, хоть Pixel Battery Saver старше и не обновляется, однако, в отличие от Pixel Filter, он позволяет накладывать либо сетку как на рабочую область экрана между строкой состояния и панелью навигации, так и на саму панель навигации. При этом для панели навигации доступна два режима наложения: сетка и темный фильтр. В-третьих, обе программы не могут накладывать сетку на строку состояния и, в случае Pixel Filter, на панель навигации, а так как наложение сетки подразумевает отключение части пикселей, что уменьшает яркость экрана, то область экрана без сетки светит куда ярче, чем область с сеткой. Данный факт делает не очень комфортным использование телефона при малой освещенности или полной темноте, так как либо участок экрана с сеткой хорошо видно, а участок без сетки бьет светом в глаза, либо наоборот. В-четверных, отключение пикселей настраивается непосредственно в программах в один клик и вариантов много и это очень удобно. Но не удобно станет после того, если Вы поставите самую частую и крупную сетку, так как Вы сразу же увидите лесенку и не сможете рассмотреть мелкий текст и элементы интерфейса. Более того, при самой частой и крупной сетке глаза должны уставать куда быстрее, будто вы смотри в старый ЭЛТ-телевизор, а яркости из-за большого числа отключенных пикселей в солнечный день может не хватить.

Учитывая все вышеперечисленные нюансы я приступил к тестированию. Во-первых, несмотря на отсутствие возможности накладывать сетку на панель навигации, для тестирования я решил использовать Pixel Filter, так как она поддерживается разработчиком, ее можно скачать из магазина и она должна работать на свежих телефонах у любого пользователя, а не только у меня и на моем телефоне с текущей прошивкой. Во-вторых, алгоритм тестирования был следующий: на первом этапе заряжаем телефон до 100% (Рис. 3а), отключаем автояркость, а яркость экрана выставляем на 100% (Рис. 3б), включаем фильтр на максимальный процент перекрытия пикселей доступный в Pixel Filter равный 88% (Рис. 3в), отключаем телефон от зарядки и пользуемся телефоном как обычно. На втором этапе проделывалось все тоже самое только без Pixel Filte. Тест останавливается, когда заряд батареи телефона опускается до 20%. Такие условия были выбраны для того, чтобы посмотреть работает ли данный способ и, если он работает, то была бы возможность получить наиболее явное отличие, которое не потеряется среди погрешности измерений. В-третьих, так как мы пытаемся уменьшить потребление энергии экраном телефона, то целесообразно смотреть не на время работы телефон в целом, а на время работы экрана при разряде телефона со 100 до 20%. В-четвертых, повторить один-в-один сценарий использования телефона при его повседневной эксплуатации очень сложно, хоть я и пытался это сделать. Следовательно, время работы экрана телефона может отличаться изо дня в день даже при прочих равных условиях, хотя практика показывает, что разница редко достигает больших значений. Поэтому в качестве порогового значения, после которого можно будет констатировать, что отключение пикселей с помощью Pixel Filter работает, была выбрана прибавка времени работы экрана телефона равная 10% от общего времени работы экрана телефона без использования программы. Таким образом, при среднем времени работы экрана телефона от 5 до 10 часов прибавка составит от 30 до 60 минут, что будет заметно, а использование программы будет оправдано. А теперь к результатам.

На рис. 4а представлен результат использования Pixel Filter с сеткой 88% при 100% яркости экрана. Видно, что в результате отключения части пикселей в моем случае телефон со 100 до 20% проработал 8 часов 21 минуту с включенным экраном. При этом телефон использовался и как навигатор, и для просмотра видео, и для телефонных звонков (экран был включен), и для просмотра интернета, и для чтения мессенджера. То есть сценарий использования максимально приближен к реальному сценарию, что является очень ценным, так как он будет повторяться у бОльшего числа пользователей. Также стоит отметить тот факт, что в ходе тестирования была выявлена возросшая нагрузка на глаза из-за крупной сетки, которая приводит к плохой читаемости информации с экрана телефона. Как показала практика глаза начинают уставать уже после 20-30 минут использования телефона с сеткой 88%. Данный факт необходимо учитывать пользователю, который решит максимально сэкономить заряд телефона, включив максимально возможную сетку.

Рис. 5. График разряда телефона со 100 до 20% с активированной в Pixel Filter сеткой 88%: черная линия с красными крестиками - данные эксперимента, зеленые точки - линия тренда (средняя линия)
Рис. 5. График разряда телефона со 100 до 20% с активированной в Pixel Filter сеткой 88%: черная линия с красными крестиками - данные эксперимента, зеленые точки - линия тренда (средняя линия)

Помимо общих данных о разряде телефона со 100 до 20% были сделаны скриншоты разряда телефона со 100 до 80 и 40% с активированной в Pixel Filter сеткой 88% (Рис. 4б и в). Благодаря полученным данным мы можем построить график разряда телефона с использованием сетки 88% (Рис. 5). Из графика видно, что разряд телефона был максимально линейным и равномерным, что подтверждается практически полным совпадением с линией тренда (средняя линия). Данный результат очень показателен и косвенно говорит нам о том, что в данном тесте одним из основных потребителей независимо от нагрузки (навигатор, просмотр видео, звонки, мессенджеры) является экран телефона. Данный факт подтверждают и скриншоты разряда телефона со 100 до 80, 40 и 20% (Рис. 4а, б и в), так как на второй строчке после приложения для просмотра видео в большинстве случаев находится экран. Постараемся повторить тот же сценарий использования, но без включения Pixel Filter.

На рис. 6а представлен результат без использования Pixel Filter с сеткой 88% при 100% яркости экрана. Видно, что в моем случае телефон со 100 до 20% проработал 7 часов 58 минут с включенным экраном. При этом удалось максимально приблизиться к тому же сценарию использования, что и в случае использования телефона с активированной в Pixel Filter с сеткой 88% (Рис. 6а, б и в). То есть, повторюсь, сценарий использования максимально приближен к реальному сценарию, что является очень ценным, так как он будет повторяться у бОльшего числа пользователей.

Рис. 7. График разряда телефона со 100 до 20% без использования Pixel Filter: черная линия с красными крестиками - данные эксперимента, зеленые точки - линия тренда (средняя линия)
Рис. 7. График разряда телефона со 100 до 20% без использования Pixel Filter: черная линия с красными крестиками - данные эксперимента, зеленые точки - линия тренда (средняя линия)

Также как и в случае с использованием Pixel Filter с сеткой 88% были сделаны скриншоты разряда телефона со 100 до 80 и 40% (Рис. 6б и в). Благодаря полученным данным мы можем построить график разряда телефона без использования Pixel Filter (Рис. 7). Из графика видно, что одна из точек, в частности для заряда 40%, слегка выбивается из строго линейно зависимости, что, как упоминалось ранее, вызвано невозможностью повторения сценария использования телефона точь-в-точь изо дня в день. Однако, отклонение измеренной от линейной величины даже не достигает значения в 5%, поэтому в будущем анализе будет считаться не существенным. Таким образом, разряд телефона опять получился максимально линейным и равномерным, что подтверждается хорошим совпадением с линией тренда (средняя линия). Данный результат хорошо сходится с результатами полученными ранее при использовании Pixel Filter с сеткой 88% (Рис. 5), то есть это говорит нам о том, что в данном тесте одним из основных потребителей независимо от нагрузки (навигатор, просмотр видео, звонки, мессенджеры), является экран телефона. Данный факт опять же подтверждают и скриншоты разряда телефона со 100 до 80, 40 и 20% (Рис. 6а, б и в), так как на второй строчке после приложения для просмотра видео находится экран.

Теперь совместим графики разряда телефона со 100 до 20%, чтобы посмотреть сильно ли отличаются результаты экспериментов с и без использования Pixel Filter с сеткой 88%. Из рис. 8а можно сделать вывод, что разница есть, а именно: использовании Pixel Filter с сеткой 88% при яркости экрана 100% телефон проработал с включенным экраном 8 часов 21 минуту, а без использовании Pixel Filter с сеткой 88% при яркости экрана 100% - 7 часов 58 минут. То есть выигрыш от использовании Pixel Filter с сеткой 88% при яркости экрана 100% составил 23 минуты или 4,8%. Таким образом на таком графике разница малозаметна и ее сложно интерпретировать. Поэтому я построил график отражающий разницу во времени работы экрана (рис. 8б). Из графика вино, что результат отличается для отдельно взятых значений заряда батареи как в пользу использования Pixel Filter с сеткой 88%, так и в пользу использования телефона без Pixel Filter. Среднее значение выгоды от использования Pixel Filter с сеткой 88% составляет 4.75 минуты (для заряда батареи телефона 80, 40 и 20%). Если же обратить внимание на линию тренда (зеленая пунктирная линия), то видно, что максимально возможный выигрыш, который теоретически можно получить от использования телефона в реальных условиях при его разрядке со 100 до 0% с активированной в Pixel Filter сеткой 88% составит не более 12 минут (пересечение линии тренда и вертикальной оси графика). При этом максимальная выгода от использования Pixel Filter с сеткой 88% зафиксирована при заряде телефона 20% и составляет 23 минуты, а в случае без использования программы - 13 минут при заряде 40%, чего по логике быть не может и вряд ли связано с погрешностью в повторении сценария использования телефона и намекает нам на очень неутешительный вывод. Все полученные из рис. 8б значения времени в случае использования Pixel Filter с сеткой 88% не достигают порогового значения в 10% от времени работы экрана телефона без использования сетки равного (7 часов 58 минут)*10%=47,8 минутам (красная линия на графике) установленного как минимально необходимого для выявления разницы с и без использования Pixel Filter. Поэтому с учетом вышеперечисленных фактов можно сделать заключение о том, что выгода от использования Pixel Filter с сеткой 88% является сомнительной и может быть списана на погрешность измерений. При этом нужно учесть, что такой результат получен в лучших условиях, в которых отключение части пикселей могло бы проявить себя с лучшей стороны и дать более существенный выигрыш во времени работы телефона от одного заряда батареи. Действительно, по-правильному, нужно было бы в эксперименте без отключения пикселей выставить яркость близкую к яркости, которая получается с отключенными пикселями, так как в любом случае использование сетки уменьшает общую яркость экрана. Например, в ходе эксперимента было отмечено, что использование Pixel Filter с сеткой 88% существенно снижает яркость экрана. По ощущениям она было минимум в 1.5 раза ниже, чем яркость строки состояния и панели навигации, к которым фильтр не применялся. Таким образом, при использование сетки 88% в программе Pixel Filter предполагает снижение яркости экрана со 100% до как минимум 66%. Таким образом, выигрыш от отключения пикселей должен составить минимум 34% или (7 часов 58 минут)*34%=162,52 минуты, или 2 часа 42 минуты. Но по результатам эксперимента такого разрыва мы не видим.

И так, что же мы получаем? Во-первых, для выявления преимуществ отключения пикселей с помощью наложения сетки поверх выводимого изображения с помощью программы Pixel Filter была выставлена максимальная сетка равная 88%. Данный факт привел к тому, что пользоваться телефоном в таких условиях ну очень не комфортно (глаза начинают болеть уже через 20-30 минут после использования). При этом мелкие элементы в видео или фото, а также текст либо не рассмотреть, либо нужно очень сильно напрягать зрение или увеличивать масштаб, что с фото и текстом еще можно сделать, а вот при просмотре онлайн видео - проблематично. Во-вторых, в добавлении ко всему мы получаем плохую читаемость экрана в солнечную погоду из-за занижения яркости в следствие отключения части пикселей, а также ослепление строкой состояния в темноте из-за невозможности наложить на нее сетку. В-третьих, самый печальный вывод состоит в том, что не смотря на вышеперечисленные мучения связанные с неудобством чтения информации с экрана, усталостью глаз, ослепление в темноте и недостаточной яркостью в солнечный день, чудесный способ не даёт ощутимого преимущества. Таким образом, пользователь понадеявшийся на подобный способ сохранения заряда телефона может остаться без связи в самый критичный момент. Это обусловлено тем, что способ дает ложную надежду на более медленный разряд телефона, что может привести к тому, что пользователь будет использовать телефон как обычно, то есть не боясь его скорого разряда и будет неприятно удивлен, когда телефон разрядится за тоже время, а то и раньше.

Если Вы заметили ошибку, неточность или у Вас есть предложения, то пишите об этом в комментариях!