Paper Collective's Oyster poster was designed by Form Us With Love and it supports WWF (World Wildlife Fund). The poster, drawn with a ballpoint pen, depicts the world's largest oyster. It belongs to the Nature 1:1 series that presents amazing objects of nature in their natural size.


text:
Колібрі велетенський (Patagona gigas) — вид серпокрильцеподібних птахів родини колібрієвих (Trochilidae). Мешкає в Андах. Це єдиний представник монотипового роду Велетенський колібрі (Patagona). Генетичні дослідження показали, що цей рід належить до окремої клади Patagonini. Імовірно, предки велетенського колібрі намагалися розвиватися в напрямку гігантизму, однак їм не вдалося диверсифікуватися, через що наразі ця клада представлена лише одним видом. За результатами низки молекулярно-філогенетичних досліджень рід Patagona був виділений у окрему підродину Patagoninae.

Опис

Велетенський колібрі є найбільшим представником родини колібрієвих, його довжина становить 20-23 см, розмах крил 21,5 см, а вага 8-24 г. Він має довгий, прямий дзьоб, дуже довгі крила (їх довжина становить 14 см, в згорнутому стані їх кінчики досянають кінчика хвоста) і відносно довгий, дещо роздвоєний хвіст. Лапи покриті пір'ям до пальців, ступні великі, міцні, навколо очей світлі кільця. Велетенський колібрі має тьмяне забарвлення, порівняно з іншими колібрі. У представників номінативного підвиду верхня частина тіла зеленувато-коричнева, надхвістя білувате, нижні покривні пера хвоста білі, крила коричневі, нижня частина тіла рудувато-коричнева. У представників підвиду P. g. peruviana забарвлення більш охристе, на підборідді і горлі у них біла пляма. Виду не притаманний статевий диморфізм. У молодих птахів збоку на верхній частині дзьоба є невеликі рифлені виступи.

Через свої великі розміри велетенські колібрі машуть крилами значно повільніше, ніж інші колібрієві (10-15 раз в секунду) і своїм польотом нагадуть кажанів. Довгі крила дозволяють велетенським колібрі ширяти, що недоступно для інших представників родини. Голос велетенського колібрі — характерний гучний, різкий, свистячий "чіп".

Підвиди
Виділяють два підвиди:
 P. g. peruviana Boucard, 1893 — Анди на південному заході Колумбії (Нариньйо), в Еквадорі, Перу, Болівії, північному Чилі (Аріка, Тарапака) і північно-західній Аргентині (на південь до північної Катамарки і Тукумана);
 P. g. gigas (Vieillot, 1824) — центральне Чилі (від Атаками до Консепсьйона і Вальдівії, іноді до Айсена) і захід центральної Аргентини (на південь до Мендоси). Південні популяції взимку мігрують до північно-західної Аргентини.

Поширення і екологія
Велетенські колібрі мешкають в Колумбії, Еквадорі, Перу, Болівії, Чилі і Аргентині. Вони живуть у високогірних чагарникових заростях та на високогірних луках пуна, трапляються в садах і поблизу людських поселень. Зустрічаються на висоті до 4600 м над рівнем моря. Взимку частина популяцій мігрує в долини або на північ.

Поведінка
Велетенські колібрі живляться переважно нектаром квітів, зокрема з роду Пуйя (Puya), а також кактусів Oreocereus celsianus, Echinopsis atacamensis і шавлії Salvia haenkei. Вони можуть зависати над квітками, як і інші колібрі, однак частіше сідають на рослину і живляться, сидячи на квітці. Велетенські колібрі є важливими запилювачами деяких видів рослин, зокрема, Puya chilensis. Ці птахи, як і інші колібрієві, вимагають багато енергії для підтримання свого метаболізму (приблизно 4,3 калорії в годину), яку вони забезпечують, живлячись нектаром якнайбільшої кількості рослин. Поряд з недостачею кисню в горах, а також з розрідженим повітрям, що створює невелику підіймальну силу, це означає, що велетенські колібрі, імовірно, мають розміри, близькі до максимально можливих для колібрі.

Дієта на основі нетару містить мало білків і різноманітних мінералів, тому велетенські колібрі час від часу живляться комахами. Крім того, самиці гіганського колібрі після сезону розмноження ковтають пісок, ґрунт або золу, щоб відновити кальцій, втрачений під час відкладання яєць.

Як і у інших представників родини, самці велетенського колібрі не беруть участі у вирощуванні потомства. Самиці будують гніздо і відкладають 2 яйця. Гніздо відносно невелике, чашоподібне, розміщується на гілці дерева або чагарника, часто поблизу води. Велетенські колібрієві захищають свою територію і нападають на колібрі-порушників.

Примітки

Колібрієві
Птахи, описані 1824
Птахи Колумбії
Птахи Еквадору
Птахи Перу
Птахи Болівії
Птахи Аргентини
Птахи Чилі
Монотипові роди птахів

redpajama_set_name: RedPajamaWikipedia


text:
Trey Smith
instagram celebrity, actor, DJ
November 11, 1992 Scorpio
5 Feet 11 Inches
DJ, actor, Instagram celebrity, Internet celebrity
Who is Trey Smith?
Who are Trey Smith's parents?
Does Trey Smith have a girlfriend?
How much is Trey Smith's net worth?
Trey Smith who was born on November 11, 1992 is an American social media personality famous for his Instagram account. He is also a DJ, music producer, actor and a celebrity child. Trey's father is the legendary actor and rap artist Will Smith.
Young Trey Smith / Instagram
Trey Smith was born and raised in Los Angeles, California, where he resides to this day. His mom's name is Sheree Zampino (also known as Sheree Fletcher) and she is a reality star. Trey's parents divorced when he was four years old. As a result, he had a strained relationship with his father. They were able to become close again only when Trey grew up. His stepmother is movie star Jada Pinkett Smith. He calls her "my bonus mother". Trey also has three half-siblings. His half-sister Willow Smith is a pop singer, and his stepbrother Jaden Smith is an actor and rapper. Trey's second half-sister's name is Jodie Fletcher.
Trey Smith created his Instagram page in June 2012. His first upload was a photo of his half-sister Jodie. Since then, he has shared 667 photos and videos. Most of them feature his family members. Trey also loves sharing photos of his adventures with friends. As of May 2022, he has amassed 843 thousand followers. As an actor, Trey's most notable appearance was in the comedy TV series All of Us. He also starred in Will Smith: Just the Two of Us music video.
Trey Smith with sibilings and their father Will Smith / Instagram
In November 2020, Trey Smith started dating model Sabrina Steward.
Trey Smith's net worth is approximately estimated at 2 million dollars as of 2022.
Trey is friends with famous DJ Steve Aoki and once posted a picture of them together in Las Vegas.
He is a huge fan of Jennifer Lawrence.
Trey's favorite travel destination is Canada.
He used to play football with the son of legendary quarterback Joe Montana, and could become a professional athlete.

redpajama_set_name: RedPajamaCommonCrawl


text:
var $ = require('jquery');

window.jQuery = $;
var bootstrap = require('bootstrap'); //eslint-disable-line no-unused-vars
var bootbox = require('bootbox');

var Pubsub = require('../lib/pubsub');
var Router = require('../router');

var BaseView = require('./base');
var HeaderView = require('./header');
var TopicsView = require('./topics');
var TopicView = require('./topic');
var ChannelView = require('./channel');
var LookupView = require('./lookup');
var NodesView = require('./nodes');
var NodeView = require('./node');
var CounterView = require('./counter');

var Node = require('../models/node');
var Topic = require('../models/topic');
var Channel = require('../models/channel');

var AppView = BaseView.extend({
    // not a fan of setting a view's el to an existing element on the page
    // for the top-level AppView, it seems appropriate, however
    el: '#container',

    events: {
        'click .link': 'onLinkClick',
        'click .tombstone-link': 'onTombstoneClick'
    },

    initialize: function() {
        BaseView.prototype.initialize.apply(this, arguments);

        this.listenTo(Pubsub, 'topics:show', this.showTopics);
        this.listenTo(Pubsub, 'topic:show', this.showTopic);
        this.listenTo(Pubsub, 'channel:show', this.showChannel);
        this.listenTo(Pubsub, 'lookup:show', this.showLookup);
        this.listenTo(Pubsub, 'nodes:show', this.showNodes);
        this.listenTo(Pubsub, 'node:show', this.showNode);
        this.listenTo(Pubsub, 'counter:show', this.showCounter);

        this.listenTo(Pubsub, 'view:ready', function() {
            $('.rate').each(function() {
                $.get(AppState.url('/graphite'), {
                    'metric': 'rate',
                    'target': $(this).attr('target')
                }).done(function(data) {
                    $(this).html(data['rate']);
                }.bind(this));
            });
        });

        this.render();
    },

    postRender: function() {
        this.appendSubview(new HeaderView());
    },

    showView: function(f) {
        window.scrollTo(0, 0);
        if (this.currentView) {
            this.currentView.remove();
        }
        this.currentView = f();
        this.appendSubview(this.currentView);
    },

    showTopics: function() {
        this.showView(function() {
            return new TopicsView();
        });
    },

    showTopic: function(topic) {
        this.showView(function() {
            var model = new Topic({'name': topic});
            return new TopicView({'model': model});
        });
    },

    showChannel: function(topic, channel) {
        this.showView(function() {
            var model = new Channel({'topic': topic, 'name': channel});
            return new ChannelView({'model': model});
        });
    },

    showLookup: function() {
        this.showView(function() {
            return new LookupView();
        });
    },

    showNodes: function() {
        this.showView(function() {
            return new NodesView();
        });
    },

    showNode: function(node) {
        this.showView(function() {
            var model = new Node({'name': node});
            return new NodeView({'model': model});
        });
    },

    showCounter: function() {
        this.showView(function() {
            return new CounterView();
        });
    },

    onLinkClick: function(e) {
        e.preventDefault();
        e.stopPropagation();
        Router.navigate($(e.currentTarget).attr('href'), {'trigger': true});
    },

    onTombstoneClick: function(e) {
        e.preventDefault();
        e.stopPropagation();
        var nodeName = $(e.target).data('node');
        var topicName = $(e.target).data('topic');
        var txt = 'Are you sure you want to tombstone ' + nodeName + '?';
        bootbox.confirm(txt, function(result) {
            if (result !== true) {
                return;
            }
            var node = new Node({
                'name': nodeName
            });
            node.tombstoneTopic(topicName).done(function() {
                window.location.reload(true);
            });
        });
    }
});

module.exports = AppView;

redpajama_set_name: RedPajamaGithub


In a nutshell, linkbuilding is a technique of acquiring links from other websites with relevant topics to ours. In general, instead of capturing direct traffic to our websites, linkbuilding is more about enhancing our rankings in search engine results. Gathering links from reputable websites is a technique used by many SEO professionals. However, common techniques can be rather tedious, if not daunting especially for those who just get started in the SEO business. Many people have overused common techniques, such as posting comments in forums and blogs. Other popular technique is trading links with other website owners, although Google and other major search engines have largely negated the effectiveness of such a method, using regular algorithm updates.
Although it is considered in appropriate to purchase links, sponsored reviews still offer value to readers by offering information and other facts to them. Many SEO professional prefer free ways to get links, but they may in fact spending too much time and lost opportunities seeking for overused free linkbuilding techniques. Reputable website owners with good PR scores could choose to offer a space for our reviews. To reduce cost, ask whether it is possible if we write the reviews themselves and ask website owners to publish them. We should make sure that the published content is unique to improve the effectiveness of our linkbuilding technique.
We could have used many software and products in our lifetime, so it is a good idea to write some reviews. Some of these products are likely related to our niche, especially if have websites that match our preferences. We could write a review with about 300 words and add a signature of our company and also the website URL. Most of the time, the website owner are willing to let us put the URL, if write a meaningful and constructive review.
This could be a more honest form of link exchange technique. In many cases, our businesses can't work on their own. We need suppliers, consultants, service providers, distributors and clients themselves. Therefore, we could publish dedicated webpage for any of these partners and describe how we work for them. We may encourage our partners to write the same thing in their website.


text: Sample README - should be copied as source code.


Our production line comprises practise-oriented solutions for different branches: C-frame presses and straight-sided eccentric presses, link drive presses, blanking lines, decoilers, straighteners or feeders.
All available in layout, according to our customers' demands. In order to find the best solution for you, we also offer engineering, based on experience and competence. Whether a single unit or a complete production system is needed, we are the best choice for you.


Academia's hard plastic school chairs are made to withstand all the everyday abuse your super-energetic students can throw at them. Their 16-gauge tubular steel legs and 14-gauge steel back supports make these chairs unbelievably strong, while an ingenious gooseneck design and self-leveling glides provide added safety and stability. An Under-seat steel-rod Book Rack provides convenient storage, while adding extra strength and rigidity to the chair. Our powerhouse of a chair also comes with a chrome plated frame, a wide choice of colors and leg glides made in the USA.
Convenient Storage: Steel-rod book rack reinforces and strengthens the chair frame and provides easy access textbook storage. 16"W x 14"D x 8"H.


text:
Q: Every time I boot into Ubuntu, it shuts down immediately and restarts itself, in a loop I am trying to boot into Ubuntu system 20.04 LTS. However, every time I turn on, for about 5 seconds loading something, then it suddenly shuts down.
It then automatically restarts, loading and shutting down .. continue in a loop.  However, if I go into Grub, I can log into the recover mode and get access the root command line interface.
Can anyone help me troubleshoot this strange thing?
The following are the only things that are set up in my computer build right now:

*

*Motherboard: Z590 MSI PRO Wi-Fi

*CPU: i9-10850k and a CPU fan

*RAM: a pair of 16 GB

*M.2 SSD: Samsung 980 Pro NVMe

*Power supply: EVGA 700 GD, 80+ GOLD 700W

UPDATE:
Currently, What I have tried which can log into the OS and even the user interface is to edit the Ubuntu option in GRUB. However, only before 5 minutes the computer shuts down itself.
Specifically, I added $vt_handoff nomodeset. When loading, I found that it keeps saying that Bluetooth hc10: reading intel version information failed (-22)

A: I solved the issue.
It seems that there are extra steps that finally make my new computer boot successfully. Here is how I solved this issue completely (I hope).

*

*buy a new power supply. I bet the original one is defective which may explain it shuts down immediately after post/grub every time.

*In the Grub mode, I modified the argument by adding nomodeset at the end of the lien of linux argument.
One may search for nomodeset via google to see related information. As a matter of fact, the safe graphic mode for installation includes nomodeset.
See reference: https://askubuntu.com/questions/1085807/black-screen-after-installation-of-ubuntu-18-04

*After I successfully installed (using safe graphic mode) and use nomodeset argument when boot in, Wifi and Bluetooth cannot use. And I donot want to use nomodeset every time.  Fortunately I have Ethernet cable. I follow this link https://forums.linuxmint.com/viewtopic.php?t=346412 and install linux-oem-20.04b via sudo apt install linux-oem-20.04b in the terminal.

From install to complete:

*

*in Grub mode use safe graphic mode to install.

*When boot into the installed Ubuntu, add nomodeset.

*Open terminal and enter sudo apt install linux-oem-20.04b.

redpajama_set_name: RedPajamaStackExchange


text:
Issaquah Cancer Survivor Takes On 100-Mile Obliteride
By Shelby Rowe Moyer | July 31, 2017
Darren Rozedaal, left, has participated in Seattle's Obliteride all five years to support Fred Hutchinson Cancer Research Center. He was diagnosed with Stage four Hodgkin's Lymphoma in December 2002. Photo courtesy of Darren Rozendaal.
The annual Seattle bike ride benefits local cancer research
Darren Rozendaal and his wife, Ceci, met through mutual friends in early 2000, and bonded over a love of soccer. Personality-wise, Rozendaal said they meshed perfectly. They're both driven and hard working, but aren't likely to sweat the small stuff. When Ceci invited Darren out to her birthday celebration on St. Patrick's Day, they were basically inseparable from then on.
Roughly two years later, just nine months before they were engaged to marry, Rozendaal, an Issaquah resident, was diagnosed with Stage IV Hodgkin's Lymphoma at 29 years old. His diagnosis was a slow development, he said, that started in May of 2002 when he went to the doctor for unusual night sweats. That December, a biopsy confirmed he had cancer, and the next week he transferred all of his records to the Seattle Cancer Care Alliance.
"I had looked at a lot of online, diagnose yourself type things and had seen that it could be cancer, but I thought it was probably less than 25 percent that (cancer) was the outcome," he said. "That day was a total shock."
The pair decided to postpone their wedding date from the spring of 2003 to November, thinking Rozendaal would be done with treatment by then. He underwent eight months of chemotherapy and endured a few stints in the hospital fighting infections. And then in September 2003, he got another wave of bad news. The treatment hadn't worked. He would need a stem cell transplant.
"When we found it hadn't worked, we had to decide if we were going to start the next step (in treatment) or keep the wedding that was planned in November," Rozendaal said. "We decided to keep it. The doctor said he couldn't tell us if waiting another few months is going to make any difference at all."
Darren and Ceci Rozendaal on their honeymoon in Hawaii, shortly before Darren received his last phase of treatment. Photo courtesy Darren Rozendaal.
So, Rozendaal and Ceci were married at the stunning A-frame Fauntleroy Church in Seattle surrounded by 200 of their friends and family. The day after they got back from their honeymoon in Hawaii, Rozendaal checked in for his transplant.
It's been more than 10 years now, and Rozendaal said he hasn't had any serious scares, and he's forever grateful to the staff at Seattle Cancer Care Alliance for the care he received. From August 11 through the 13, he'll be among the countless Eastside participants at the fifth annual Obliteride bike ride in Seattle that's raised more than $9.2 million for cancer research at Fred Hutchinson Cancer Research Center. The Rozendaals have participated since its inception either in-person or virtually.
"One thing (I'd like to impart) is that no matter what involvement someone has with the event, that it's important and there's people out there that really appreciate it," he said.
"There were definitely times where it was a roller coaster," he added. "Overall, we were in a fortunate situation, just from the amount of support we had from friends and family in the area and the level of care. … I benefited so much from the care I got and it was done so well. Everyone we came in contact with pretty much handled things as best as they could, which was pretty unique."
Participants will set out on a 25-mile, 50-mile or 100-mile trek for Obliteride and the event kicks off Friday, Aug. 11 at Gas Works Park.
Donations can be made to participants, teams, or to Obliteride in general. One hundred percent of the donations go toward supporting Fred Hutch.
Tags: cancer research, Fred Hutch Cancer Research Center, Gas Works Park, Obliteride, Seattle
Shelby Rowe Moyer is an assistant editor at 425 magazine. Email her.
St. Thomas School Continues Partnership with Microsoft
Cheney Stadium Ready for July All-Star Game Spotlight


text:
Home > Articles > Security > Network Security
Danger on the Computer and What to Do If You Are the Victim of Identity Theft
What Can You Do About Spyware?
Celebrity Malware
Help You Just Don't Need
Wi-Fi: A Convenience to Worry About
E-Mail Dangers
Bad Apples
Typos Can Be Dangerous
You Can Bank on This Being a Scam
A Few Ounces of Protection-Protecting Yourself Online from Identity Theft
A Pound of Cure-What to Do If You Are a Victim of Identity Theft
< Back Page 10 of 14 Next >
This chapter is from the book 
This chapter is from the book
50 Ways to Protect Your Identity in a Digital Age: New Financial Threats You Need to Know and How to Avoid Them, 2nd Edition
This chapter is from the book 
Unfortunately it is not enough to do all that you can to protect the data that, in the hands (or computer) of an identity thief, can lead to trouble for you because you are only as safe as the weakest security programs of the companies and agencies with which you do business.
A Towering Problem
It is important to be sure that any company with which you do business protects your personal information; however, sometimes the assurances of those companies mean little. The FTC recently brought a complaint against Tower Records. The company claimed that it used state-ofthe-art technology to safeguard the personal information of customers. However, the security system it used permitted online users of its Web site to access personal information about other Tower customers. According to the FTC, this flaw in the security system was easy to fix, but Tower failed to do so until it was compelled by a formal complaint of the FTC that was settled in April 2004. In this case, as with all FTC settlements, Tower did not admit that it did anything wrong yet agreed not to do it again.
We Regret to Inform You
In March 2004, GMAC notified 200,000 of its customers that their personal information might have been compromised (a euphemism for "possibly stolen") following the theft of two laptop computers used by GMAC employees that were stolen from an employee's car. Although the data stored on the particular laptop computers was protected by password-access technology, the data itself was not encrypted as a further prudent security measure. The data itself was extremely sensitive material, including names, addresses, birth dates, and Social Security numbers of GMAC customers. This security breach is not uncommon in an era when employees may take work home on their laptops.
It is not even just the companies with which you do business that should concern you. It is also the companies with which they do business and with which they might share your personal information. In 2003, the Bank of Rhode Island contacted 43,000 of its customers to warn them that their personal information, including Social Security numbers, might have been compromised. A laptop computer used by an employee of Fiserv, Inc., a company with which the Bank of Rhode Island did business, was stolen. This laptop computer contained sensitive personal information about Bank of Rhode Island customers.
California, a state that has often been the leader in identity protection laws, has had a law since 2003 that requires any business that has had a breach of its computer security to notify its customers. Similar laws are expected to be passed in other states, although it would be even better if companies paid greater attention to preventing their systems from being improperly accessed in the first place.
Keys to Identity Theft
It was bad enough that two Wells Fargo employees left the car keys in the ignition of their unlocked rental car during a stop at a Missouri gas station convenience store while they went inside in February 2004. When they came out, their Ford Mustang was gone. But also gone with the car was the laptop computer that they had left unattended in the trunk of the car. The computer contained the names, addresses, and Social Security numbers of thousands of Wells Fargo mortgage customers. The car was retrieved less than a week later, but the computer was gone. A password was required to access the personal information stored on the computer, but the simplicity of that task to a computer-savvy identity thief left Wells Fargo's mortgage customers in substantial danger of identity theft.
Ask any company with which you do business about their policy for the security and protection of personal information, including whether your information is encrypted in their computers. If their answers do not satisfy you, take your business elsewhere.
If You Can't Trust Your Lawyer, Whom Can You Trust?
If you can't trust your own lawyer, whom can you trust? My grandmother, the same one who used to say that she could keep secrets but that the people to whom she told them could not, used to refer to me as her grandson "the liar." I used to try to correct her, telling her that the name of my profession was pronounced "lawyer," to which she always responded, "Don't correct me, I know what I'm saying." I think my grandmother was kidding. I hope my grandmother was kidding, but many people do consider lawyers just a bunch of liars. The case of Iric Vonn Spears, unfortunately, does little to dispel that impression. Iric Vonn Spears was an attorney who, having access to the personal information of his client Reginald Dalton, used that information to steal Dalton's identity and buy a home and open credit card accounts. The house of cards tumbled when the real Dalton was contacted by the bank that held the mortgage on the home purchased by Iric Vonn Spears using the name of Reginald Dalton, telling him that the mortgage was being fore-closed. Iric Vonn Spears was convicted of grand theft, mortgage fraud, identity fraud, and forgery. He was sentenced to ten years in prison.


text:
Coronel Vivida är en ort i Brasilien.   Den ligger i kommunen Coronel Vivida och delstaten Paraná, i den södra delen av landet,  km söder om huvudstaden Brasília. Coronel Vivida ligger  meter över havet och antalet invånare är .

Terrängen runt Coronel Vivida är kuperad åt sydväst, men åt nordost är den platt. Den högsta punkten i närheten är  meter över havet,  km nordväst om Coronel Vivida. Coronel Vivida är det största samhället i trakten.

Omgivningarna runt Coronel Vivida är en mosaik av jordbruksmark och naturlig växtlighet. Runt Coronel Vivida är det ganska glesbefolkat, med  invånare per kvadratkilometer.  Klimatet i området är fuktigt och subtropiskt. Årsmedeltemperaturen i trakten är  °C. Den varmaste månaden är november, då medeltemperaturen är  °C, och den kallaste är juni, med  °C. Genomsnittlig årsnederbörd är  millimeter. Den regnigaste månaden är juni, med i genomsnitt  mm nederbörd, och den torraste är augusti, med  mm nederbörd.

Kommentarer

Källor

Orter i Paraná


Most householders know they can switch their electricity supplier but not everyone knows they can save money by switching their gas supplier as well.
Until now, there hasn't been an easy way to compare gas suppliers. Customers looking for the best deals had to compare complicated tariffs, standing charges and unit rates by themselves.
What we've done at bonkers.ie is take all the rates and tariffs from all the mains gas suppliers and made it as easy as possible for you to find and switch to the best deal quickly.
It's worth checking out because there's very good savings to be made, actually changing supplier only takes minutes, and you can switch directly through bonkers.ie. With horrendous winter gas bills hitting mats across the country, most of us are looking for ways to heat our homes for less – and paying as little as possible for our gas is certainly one of them!
At bonkers.ie, we've been comparing electricity for some time. We've helped thousands of householders find and switch to the cheapest electricity deals – and we hope our new gas comparison service will help thousands more to save on their gas bills too.
What's changing in Ireland is that suppliers are now starting to offer combined gas and electricity deals. These are known as dual fuel tariffs and they usually work by offering extra discounts to customers that sign up to them. They can be very good value and are available to anyone with a mains gas supply. They're becoming fiendishly complicated though, and it's getting more and more difficult to work out whether you're getting the best deal by signing up to them.
Our new dual fuel comparison and switching service takes all of these deals and compares them. Not just with each other, but with the standalone gas and standalone electricity tariffs too. We do this because when you use bonkers.ie to find the best home energy deal, you can be sure you come away with just that – the best home energy deal for you.
Why not give it a shot? You may be surprised at how much you can save. Just by switching, an average household can shave a very pleasant €200+ off their combined gas and electricity bills.
Over the last couple of years, we've been bombarded by messages highlighting how much we can save on our electricity and gas bills by switching suppliers. With savings messages as high as 20%, it's certainly helped energy companies get new customers - but these messages don't tell the whole story.
Why? Well, most ads and savings messages compare just unit rates. They don't take into account other costs like standing charges, taxes and levies. They don't take into account consumption either.
At bonkers.ie we recognize that home energy bills are made up of much more than just unit rates, so you're shown exactly how much you can save on your overall gas, electricity and dual fuel bills. Calculations on bonkers.ie take into account all costs including standing charges, taxes, levies and unit rates.
bonkers.ie savings messages are also based on individual household consumption and displayed as cash figures and percentages. This helps you to easily find and switch to the best gas and electricity deals.
This is our promise. We'll be impartial, we won't hide anything and we'll show every little cost. If one tariff has a higher standing charge, we'll take it into account. And if you've heard that you can save more than we're showing you in your search results – there's probably a very good reason – and you'll see it in our "See Calculations" section.


text:
"Clayville N.Y." (x)
Millard, Charles S. (x)
Enlistment form of C. Naaman Beach, 117th New York Infantry Regiment
Beach, C. Naaman, Loomis, Edward, Roys, Charles H., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Beach, C. Naaman, age: 27 years, town of birth: Paris, state of birth: New York, country of birth: United States, occupation: Mechanic, volunteered at: Clayville, New York, volunteered on: July 28, 1862, sworn in at: Rome (NY), Company: G
Beach, C. Naaman
Clayville (N.Y.), , ,
Enlistment form of Joseph B. Cogswell, 117th New York Infantry Regiment
Cogswell, Joseph B., Loomis, Edward, Roys, Charles H., Cogswell, William, United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Cogswell, Joseph B., age: 18 years, town of birth: Clayville, state of birth: New York, country of birth: United States, occupation: Mechanic, volunteered at: Clayville, New York, volunteered on: July 24, 1862, sworn in at: Rome (NY), Consentor: Cogswell, William, Father, Company: G
Cogswell, Joseph B.
Clayville (N.Y.), ,
Enlistment form of Henry V. Crandall, 117th New York Infantry Regiment
Crandall, Henry V., Loomis, Edward, Roys, Charles H., Johnson, Madine L., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Crandall, Henry V., age: 21 years, state of birth: New York, county of birth: Oneida County, country of birth: United States, occupation: Farmer, volunteered at: Clayville, New York, volunteered on: July 22, 1862, sworn in at: Rome (NY), Company: G
Crandall, Henry V.
Enlistment form of James Egan, 117th New York Infantry Regiment
Egan, James, Loomis, Edward, Roys, Charles H., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Egan, James, age: 21 years, country of birth: Ireland, occupation: Farmer, volunteered at: Clayville, New York, volunteered on: July 30, 1862, sworn in at: Rome (NY), Company: G
Egan, James
Enlistment form of Philip Hinninger, 117th New York Infantry Regiment
Hinninger, Philip, Loomis, Edward, Roys, Charles H., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Hinninger, Philip, age: 25 years, country of birth: Germany, occupation: Farmer, volunteered at: Clayville, New York, volunteered on: July 24, 1862, sworn in at: Rome (NY), Company: G
Hinninger, Philip
Enlistment form of Lewis Johnson, 117th New York Infantry Regiment
Johnson, Lewis, Loomis, Edward, Roys, Charles H., Johnson, Phebe, United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Johnson, Lewis, age: 18 years, state of birth: New York, county of birth: Oneida County, country of birth: United States, occupation: Mechanic, volunteered at: Clayville, New York, volunteered on: July 23, 1862, sworn in at: Rome, New York, Consentor: Johnson, Phebe, Guardian, Company: G
Johnson, Lewis
Enlistment form of Medine L. Johnson, 117th New York Infantry Regiment
Johnson, Medine L., Loomis, Edward, Roys, Charles H., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Johnson, Medine L., age: 24 years, state of birth: New York, county of birth: Oneida County, country of birth: United States, occupation: Agent, volunteered at: Clayville, New York, volunteered on: July 28, 1862, sworn in at: Rome, New York, Company: G
Johnson, Medine L.
Enlistment form of William G. Lasher, 117th New York Infantry Regiment
Lasher, William G., Loomis, Edward, Roys, Charles H., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Lasher, William G., age: 22 years, town of birth: Sauquoit, state of birth: New York, country of birth: United States, occupation: Mechanic, volunteered at: Clayville, New York, volunteered on: July 25, 1862, sworn in at: Rome, New York, Company: G
Lasher, William G.
Enlistment form of Roscoe Luce, 117th New York Infantry Regiment
Luce, Roscoe, Loomis, Edward, Roys, Charles H., Hulbert, William L., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Luce, Roscoe, age: 22 years, state of birth: Maine, country of birth: United States, occupation: Clerk, volunteered at: Clayville, New York, volunteered on: July 24, 1862, sworn in at: Rome, New York, Company: G
Luce, Roscoe
Enlistment form of Thomas Pangburn, 117th New York Infantry Regiment
Pangburn, Thomas, Loomis, Edward, Roys, Charles H., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Pangburn, Thomas, age: 39 years, town of birth: unknown, state of birth: New York, country of birth: United States, occupation: Mechanic, volunteered at: Clayville, New York, volunteered on: July 24, 1862, sworn in at: Rome, New York, Company: G
Pangburn, Thomas
Enlistment form of Charles H. Sharp, 117th New York Infantry Regiment
Sharp, Charles H., Loomis, Edward, Roys, Charles H., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Sharp, Charles H., age: 43 years, state of birth: New York, county of birth: Oneida County, country of birth: United States, occupation: Mechanic, volunteered at: Clayville, New York, volunteered on: July 23, 1862, sworn in at: Rome, New York, Company: G
Sharp, Charles H.
Enlistment form of Albert Mason, 117th New York Infantry Regiment
Mason, Albert, Loomis, Edward, Roys, Charles H., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Mason, Albert, age: 29 years, state of birth: New York, county of birth: Oneida County, country of birth: United States, occupation: Mechanic, volunteered at: Clayville, New York, volunteered on: August 08, 1862, sworn in at: Rome, New York, Company: G
Mason, Albert
Enlistment form of Francis O. Terrill, 117th New York Infantry Regiment
Terrill, Francis O., Loomis, Edward, Roys, Charles H., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Terrill, Francis O., age: 22 years, state of birth: New York, county of birth: Oneida County, country of birth: United States, occupation: Mechanic, volunteered at: Clayville, New York, volunteered on: July 25, 1862, sworn in at: Rome, New York, Company: G
Terrill, Francis O.
Enlistment form of Francis Tuttle, 117th New York Infantry Regiment
Tuttle, Francis, Loomis, Edward, Roys, Charles H., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Tuttle, Francis, age: 25 years, town of birth: Paris, state of birth: New York, country of birth: United States, occupation: Mechanic, volunteered at: Clayville, New York, volunteered on: July 25, 1862, sworn in at: Rome, New York, Company: G
Tuttle, Francis
Enlistment form of Harrison E. Webster, 117th New York Infantry Regiment
Webster, Harrison E., Loomis, Edward, Roys, Charles H., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Webster, Harrison E., age: 21 years, town of birth: Clayville, state of birth: New York, country of birth: United States, occupation: Farmer, volunteered at: Clayville, New York, volunteered on: July 25, 1862, sworn in at: Rome, New York, Company: G
Webster, Harrison E.
Enlistment form of William Ward, 117th New York Infantry Regiment
Ward, William, Loomis, Edward, Roys, Charles H., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Ward, William, age: 22 years, state of birth: New York, county of birth: Oneida County, country of birth: United States, occupation: Farmer, volunteered at: Clayville, New York, volunteered on: July 23, 1862, sworn in at: Rome, New York, Company: G
Ward, William
Enlistment form of Perry F. Babcock, 117th New York Infantry Regiment
Babcock, Perry F., Loomis, Edward, Roys, Charles H., Babcock, George W., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Babcock, Perry F., age: 19 years, town of birth: Paris, state of birth: New York, county of birth: Oneida County, country of birth: United States, occupation: Farmer, volunteered at: Clayville, New York, volunteered on: August 05, 1862, sworn in at: Rome, New York, Consentor: Babcock, George W., Father, Company: G
Babcock, Perry F.
Enlistment form of Edward Bligh Avery, 117th New York Infantry Regiment
Avery, Edward Bligh, Loomis, Edward, Roys, Charles H., Avery, Eli, United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Avery, Edward Bligh, age: 18 years, town of birth: Utica, state of birth: New York, country of birth: United States, occupation: Student, volunteered at: Clayville, New York, volunteered on: July 24, 1862, sworn in at: Rome, New York, Consentor: Avery, Eli, Father, Company: G
Avery, Edward Bligh
Enlistment form of William W. Camp, 117th New York Infantry Regiment
Camp, William W., Loomis, Edward, Roys, Charles H., Hulbert, William L., United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Camp, William W., age: 28 years, town of birth: Paris, state of birth: New York, country of birth: United States, occupation: Mason, volunteered at: Clayville, New York, volunteered on: July 30, 1862, sworn in at: (unknown), New York, Company: G
Camp, William W.
Enlistment form of Sherman B. Daboll, 117th New York Infantry Regiment
Daboll, Sherman B., Loomis, Edward, Roys, Charles H., Johnson, Madine L., Daboll, George, United States Army, 117th New York Volunteers Veterans Association
Inscriptions: Enlistee: Daboll, Sherman B., age: 18 years, town of birth: Clayville, state of birth: New York, country of birth: United States, occupation: Farmer, volunteered at: Clayville, New York, volunteered on: July 28, 1862, sworn in at: Rome, New York, Consentor: Daboll, George, Father, Company: G
Daboll, Sherman B.
Military records (26) + -
117th New York Volunteers Veterans Association (26) + -
Loomis, Edward (26) + -
United States Army (26) + -
Hulbert, William L. (3) + -
Johnson, Madine L. (3) + -
Avery, Edward Bligh (1) + -
Avery, Eli (1) + -
Babcock, George W. (1) + -
Babcock, Perry F. (1) + -
Beach, C. Naaman (1) + -
Camp, William W. (1) + -
Cogswell, Joseph B. (1) + -
Cogswell, William (1) + -
Crandall, Henry V. (1) + -
Daboll, George (1) + -
Daboll, Sherman B. (1) + -
Egan, James (1) + -
Hinninger, Philip (1) + -
Johnson, Lewis (1) + -
Military Service, Voluntary. United States. New York (State) (26) + -
Soldiers. New York (State) (26) + -
New York (26) + -
Paris (N.Y.) (4) + -
Clinton (N.Y.) (1) + -
Maine (1) + -
Sauquoit (N.Y.) (1) + -
Utica (N.Y.) (1) + -


Hyperflex has added these awesome 3mm AMP Split Toe Booties to their lineup! The high-end superstretch neoprene ensures flexibility and a comfortable fit. The sealed seams are reinforced with external Fusion Welded liquid taping. A poly fleece lining, a tapered ankle, and glideskin seals ensure that water entry is kept to a minimum so your feet remain as dry and warm as possible. A textured sole provides necessary traction while keeping bulk minimal. If you want the best, go with the AMP boots.
Lobster season is upon us and the XS Scuba's popular Bug Grabber are back in stock! The fingertips have been redesigned and covered with Kevlar material- Lobster's cannot slip out of your grip with these on. New patterns provide and improved fit to enhance your grip and dexterity.
The ever-popular Tropic 1.5mm dive glove now features a new eye-pleasing material pattern in CAMO. Stylish looks aside, this updated tropical glove still features a 1.5mm neoprene back for comfort and warmth, plus an Amara palm to protect against infection-prone finger cuts when grasping barnacle-encrusted dive ladders in tropical waters.


Kids Sports Crew Socks, Wholesale Bulk Pack Sock for boys and girls, by WSD (White, 4-6) at low wholesale prices. Socksinbulk.com offers Boys Crew Sock at bulk discounted prices.
Get 180 pairs case of quality sports socks for one low and unbeatable price. Select colors including white, black, and gray. With so many pairs, you will never have to worry about running out of sports socks for the kids. Whether they're playing at home, sports, or outdoors, this bulk pack ensures that you have enough socks to not have to constantly do laundry!
Each bulk pack of socks will includes 180 pairs case of kids ankle socks for boys or girls. Choose from solid colors including white, black, or gray sports socks. With 180 pairs, you will never have to worry about running out of athletic socks again!
Made with quality fibers for longevity. Made with 80% cotton, 15% polyester, and 5% spandex. Size 4-6 will fit kids shoe sizes 7-10, size 6-8 will fit kids shoe sizes 4-7.5 (US). This is a great gift for your child, grandchild, sibling, or family member with a whopping 180 pairs in a case! Perfect bulk buy for donating to your favorite charity. Add to cart now while still in stock!


next post Responsive vs. Adaptive Web Design: Which is Better?
Previously, we looked at smarter ways to plan and optimize media placements. The next step is optimizing beyond the click-through rate, with a focus on driving conversions on your website and improving your ROI from digital media.
In order for any sales-driven campaign to be effective, you need to have already created brand awareness in the market. At a previous agency, I worked with a travel client that wanted to drive sales in a market where they had zero brand recognition. No effort was made to increase awareness, and the budget was specifically focused on driving ticket sales. Needless to say, this did not produce positive results and the client exited the market in the red.
A direct response (conversion focused) campaign is not as effective when it is a stand-alone effort. A sales effort gets the best results when coupled with a brand effort. This is especially true when you are asking a consumer to part with their money.
If you currently use digital media as part of your media mix, then you're likely using a third party ad sever. Tracking digital media via a third party ad server ensures contracts are fulfilled and tracks user engagement with an ad. To determine your ROI from digital media, you should also use a website analytics tool.
Website analytics are essential to track online activity past the consumers' interaction with the ad and to help determine if that activity is converting into revenue. These tools track key activities on a website as they relate to your conversion goals (e-newsletter sign-ups, registrations, online sales, etc.).
Having the ability to see the users' path through your website gives you more control: by knowing what is most engaging and where users are dropping off in the conversion process, you can make tweaks to your call to action in the middle of a campaign, increasing the efficiency of your marketing dollars.
Website analytics can also track the actual revenue from an online sale. This allows you to determine and optimize toward tactics driving the most revenue, instead of focusing solely on conversions.
We applied this strategy to Jay Peak Resort's digital campaign and evolved the banner and paid search campaign to focus on actual revenue that has been generated from these efforts.
The result? The campaign revenue per ad dollar year over year has improved by 179%.
Your turn: Is your business focused on driving leads or building your email subscription list? Are you using website analytics to measure success?
In this animated video, we combine helpful information with relatable humor to talk about a sometimes-uncomfortable topic.


Tag: Eircom | Something Odd!
When will my broadband be upgraded?
Here in Ireland one company owns (almost?) all the local phone lines, Eircom. Just about every other company who provides a DSL service has to rent from them (anyone remember Smart?). The result of which is very similar pricing from every single broadband provider.
Good news for me then. My 2Mb line becomes a 3Mb one. The upload rate remains at 256Kb unfortunately.
I twittered that url yesterday and others found out they'll have to wait until August 9th. The page above works even if you're not using BT's service. When will your broadband be upgraded?


RIZZO prepares conceptual through final designs for dams, hydroelectric facilities, hydraulic structures, and intake structures. RIZZO also designs foundations for nuclear, gas, coal fired, and wind power plants; tunnels; shafts; underground structures; and other special purpose facilities for the power industry.
We provide structural and foundation engineering services, which includes performing complex structural and geotechnical analyses using state-of-the-art engineering software, for a wide variety of heavy civil works projects. Our capabilities extend to all construction materials, and senior-level staff members participate in code committees for organizations such as ASTM, ASCE, and ACI.
RIZZO has particular expertise in dealing with complicated or complex site conditions or structures, , unique materials and performance requirements, intensive regulatory interaction, and/or fast-track schedules.


text:
Angela Merkel famously visited glaciers in Greenland in 2007Image: picture-alliance/dpa/M. Kappeler
PoliticsGermany
Merkel, the would-be 'climate chancellor'
Madelaine Pitt
07/23/2021 July 23, 2021
As Angela Merkel prepares to leave office, she leaves behind a mixed legacy in terms of climate policy.
https://p.dw.com/p/3xwFH
The death toll from catastrophic flooding in parts of western Europe last week has now surpassed 200. Here in Germany, images of coursing water, devastated houses and rescue operations have dominated the news as experts warn that extreme weather events such as this one will only happen more frequently with climate change.
With just under two months to go before the federal elections, attention to the issue of climate policy has been cranked up another notch.
Chancellor Angela Merkel's visit this week to the town of Bad Münstereifel, one of the hardest hit by the floods, echoed an older image of her at the site of a different type of climate disaster. Back in 2007, Merkel posed aboard a boat in Greenland, the scarlet of her jacket bright against a melting wall of glittering glacier.
The famous photo helped seal her reputation as "the climate chancellor." She had already urged real action on the climate crisis during her time as environment minister, when she wrote a book on the subject called "The Price of Survival."
Angela Merkel was environment minister between 1994 and 1998 under former Chancellor Helmut KohlImage: picture-alliance/dpa
Since she was first elected to Germany's highest office in 2005, Merkel has overseen the signing of landmark environmental policies like the 2015 Paris Agreement. She has also shaped legislation to take her country out of nuclear and coal, policies which have never previously been part of the manifesto for her party, the center-right Christian Democratic Union (CDU).
But have her policies actually been successful — and has she lived up to her nickname?
Climate crisis on the global agenda
A physicist by training, Merkel was outspoken on climate change far earlier than most global leaders and has repeatedly insisted on the need for scientific findings to guide the political debate.
Early in her chancellorship, during the same year as the glacier visit, Germany enjoyed a double whammy of presidencies: that of the Council of the European Union and that of the G8. Merkel was credited with making the climate crisis a major focus of both and with ensuring important steps were taken towards establishing international goals for reducing emissions.
Indeed, raising awareness of the issue on the international stage "is the greatest achievement in terms of climate policy that we can attribute to Merkel," says Tobias Austrup, climate expert for Greenpeace in Germany.
However, international impetus stalled as the 2008 global financial crisis struck, with key players such as the US and China losing enthusiasm for climate goals in favor of prioritizing economic growth. But Angela Merkel "worked a lot behind the scenes to get the Paris Agreement signed," says Dr Daniela Jacob, a climate scientist who was one of the leading authors of the report that became the basis of the 2015 climate accord.
Progress during Germany's most recent presidency of the Council of the EU last year saw negotiations progress towards the European Green Deal. In December, member states signed on the dotted line and pledged to reduce emissions by at least 55% from 1990 levels.
Angela Merkel has worked on many international negotiations on climate protection measures.Image: Reuters/F. Bensch
Despite the plethora of international signatures on deals like the Paris Agreement, they have yet to translate into real progress. "The world, Europe, Germany — none of them are on track to keep global warming below 1.5 C," says Tobias Austrup.
Merkel's record on German energy policy
"I think on the international and European levels, she managed more than in her own country," says Dr. Jacob.
Tobias Austrup of Greenpeace Germany, for his part, calls Merkel's domestic record "disappointing."
While Germany did manage to meet its 2020 target emissions targets for emissions reduction, this was due solely to the slowdown in industry and transport that resulted from the COVID-19 pandemic, says Austrup. "There is no way at all that we would have hit the target otherwise."
Meanwhile, the German Parliament passed legislation last year to phase out coal by 2038, which, for Tobias Austrup, is a belated and inadequate step: "The countries around us are all leaving coal faster than we are." And Daniela Jacob points out, "Building renewable energy capacity has been far too sluggish."
The slow progress on coal contrasts with the snap decision to quit nuclear power following the Fukushima disaster in 2011. Although Merkel had previously asserted that it would be "absurd to shut down technologically safe nuclear power plants that don't emit CO2," an abrupt U-turn came just days after the tsunami that caused the Fukushima Daiichi nuclear plant in Japan to experience three meltdowns and release radioactive substances into the environment.
This was a huge change. Up to that point, quitting nuclear had been a flagship policy of the Green Party — which rose in the polls following Fukushima —but was new territory for Merkel's CDU. Germany is now set to phase out nuclear completely by next year.
A bumpy road for Merkel's transport policy
Critics have also lamented her record on transport. "Nothing has improved in this area in the past 16 years" says Austrup, with Germany's automobile industry being something of an Achilles heel for Merkel's CDU, which has close ties to one of the country's main economic pillars.
The German car industry has benefitted from Merkel's protection in BrusselsImage: picture-alliance/dpa/F. Rumpenhorst
Merkel should have provided incentives for building electric, low-CO2, or hydrogen-powered cars much earlier, says Daniela Jacob, who wants Germany to move away from the car as a status symbol for the economy.
But how much of all this is really down to Merkel — and how much to her party? The "economic wing" of her party has frequently tried to water down climate legislation in favor of short-term economic gains, say Austrup and Jacob. "Perhaps she should have got rid of those around her who kept blocking measures," says Jacob.
Climate looms large as elections approach
One of the last aspects of climate policy that Merkel is to oversee is Germany's Climate Action Law, which was designed to make carbon neutrality by 2050 legally binding for Germany. Initially coming into force in 2019, it was deemed too slow by the German Constitutional Court, and Germany must now instead achieve carbon neutrality by 2045.
Overall, Jacob says that Merkel has herself admitted that what she has achieved isn't enough. "I believe that she wanted to do much more than she was actually able to," says Jacob.
The climate scientist also points out that Merkel "laid a lot of important foundations for climate protection, but the bottom line is that she did not fulfill those aspirations."
In pictures: Deadly extreme weather shocks the world
From Germany to Canada to China, dramatic pictures of the severe impacts of extreme weather have been dominating the news in recent weeks. Is the climate crisis to blame?
Nature and Environment 09/14/2021 September 14, 202113 images
Germany's coal-fired Datteln power plant sparks fresh protests
Climate activists demanding the closure of a new coal-fired power station have staged multiple protests, in Berlin and Finland. Finnish-run Datteln 4, near Dortmund, flouts Germany's goal to switch to renewables.
Nature and Environment 08/14/2020 August 14, 2020
GermanyFloods in GermanyAngela Merkel


text:
\section{Introduction}
\label{sec:intro}
\begin{figure}
   \centering
   \includegraphics[width=\linewidth]{figures/kmeans.pdf}
    \caption{\label{fig: kmeans} (\emph{top}) Qualitative result of our
       denoising network. The proposed approach (b) recovers fine geometric
       details from a very noisy image burst (a, only one frame is shown).
       (\emph{Bottom}) our per-burst bases can compactly represent a large
       variety of kernels by exploiting the redundancy of local image
       structures. We clustered the per-pixel coefficients predicted from the
       noisy burst using $k$-means. The clusters we obtain show strong spatial
       structure (d). For instance, we can identify a cluster corresponding to
       horizontal image edges (e, orange), one  corresponding to vertical edges
       (e, green), and another for homogeneous regions with no structure (e,
       gray).}
\end{figure}

Burst denoising algorithms~\cite{liu2014fast,hdrplus,burstkpn} seek to
enable high-quality photography in challenging conditions and are
increasingly being deployed in commercial mobile
cameras~\cite{hdrplus,liba2019lowlight}. A burst captures a sequence
of short-exposure frames of the scene that are free of motion-blur,
but with a high amount of noise in each frame and relative motion
between frames. By accounting for this relative motion and using the
fact that the noise is independent across frames, burst denoising
attempts to aggregate these inputs and predict a single noise- and
blur-free image estimate.

Recently, Mildenhall~\etal~\cite{burstkpn} proposed an elegantly
simple yet surprisingly successful approach to burst denoising. Rather
than explicitly estimating inter-frame motion~\cite{hdrplus,
  liu2014fast, heide2016proximal, flexisp,kokkinos2019iterative},
their method produces denoised estimates at each pixel as a weighted
average of observed noisy intensities in a window around that pixel's
location in all frames. These averaging weights, or kernels, are
allowed to vary from pixel-to-pixel to implicitly account for motion
and image discontinuities, and are predicted from the noisy input
burst using a ``kernel prediction network'' (KPN).

However, KPNs need to produce an output that is significantly
higher-dimensional than the denoised image---even for $5\times 5$
kernels with eight frames, a KPN must predict 400 times as many kernel
weights as image intensities. This comes with significant memory and
computational costs, as well as difficulty in training given the many
degrees of freedom in the output. As a result, KPNs have so far been
used only with small kernels. This limits their denoising ability by
preventing averaging across bigger spatial regions, and over frames
with larger relative motion.

In this paper, we introduce an approach to predict large denoising
kernels, and thus benefit from wider aggregation, while simultaneously
limiting output dimensionality at each pixel, making the prediction
network easier to train and compute- and memory-efficient. This
approach is motivated by a long history of successful image
restoration methods that have leveraged internal structure and
self-similarity in natural
images~\cite{bm3d,nlmeans,xia2018identifying,liu2018non,zhang2019residual}. In
burst denoising, self-similarity is particularly strong because we
expect both \emph{spatial} structure in the form of similar patterns
that recur within a frame and across frames of the same scene, and
\emph{temporal} structure caused by consistency in scene and camera
motion. Given the expected self-similarity and structure in the image
intensities themselves, we argue that the corresponding denoising
kernels must also have similar structure. Specifically, while allowing
for individual per-pixel denoising kernels to be large, we assume that
all the kernels for a given image span a lower-dimensional subspace.

Based on this observation, we introduce a new method for kernel-based burst denoising that achieves better accuracy and efficiency. Our contributions are:

\begin{itemize}[nosep,leftmargin=\labelwidth]
\item \CR{We introduce basis prediction networks (BPNs): given an input noisy burst, these networks predict a global low-dimensional basis set for large denoising kernels}, and per-pixel coefficient vectors relative to this basis. BPN outputs are thus significantly lower-dimensional than the per-pixel arbitrary kernels from a regular KPN.
\item Enforcing this structure on the denoising kernels acts as a form
  of regularization, and our experiments show this leads to
  state-of-the-art denoising performance with significantly
  higher quality (>1 dB PSNR) than KPNs.
\item Beyond reducing memory usage and computational burden at the
  output layer, the structure of BPN's output enables the
  final kernel filtering step to be performed much more efficiently in
  the Fourier domain. We show this in terms of required number of
  FLOPs, as well as experimentally with actual run-times.
\end{itemize}

\section{Related Work}
\label{sec:rw}

\paragraph{Single-image and video denoising.}
Single-image denoising has been studied extensively. To overcome the
ill-posed nature of the problem, classical
approaches~\cite{foe,foe0,epll} developed regularization schemes that
model the local statistics of natural images. The most successful
approaches~\cite{bm3d, nlmeans} exploit non-local self-similarity
within the image and denoise pixels by aggregating similar pixels or
patches from distant regions. These methods have been extended to
denoise videos~\cite{vbm3d, vbm4d}, where the search for similar
patches proceeds not only within frames, but also across different
frames. Recent work has improved image denoising performance using
convolutional networks trained on large
datasets~\cite{mlp,dncnn,ircnn,liu2018non,zhang2019residual,xia2018identifying,xie2012denoising}.
Other works use hand-crafted features to select per-pixel filters from learned filter sets for efficient image enhancement~\cite{raisr,blade}.

\paragraph{Burst denoising.}
Single-image denoising is a fundamentally under-constrained problem.
Burst processing can reduce this ambiguity by using multiple
observations (the frames of the burst) to recover a noise-free
depiction of the scene.  Burst denoising algorithms are now
extensively used in commercial smartphone cameras~\cite{hdrplus} and
can produce compelling results even in extreme low light
scenarios~\cite{chen2018dark,liba2019lowlight}.  Like in video
denoising, a significant challenge for burst processing is the
robustness to inter-frame motion.  Many methods explicitly estimate
this motion to align and denoise the frames~\cite{hdrplus,
  liu2014fast,heide2016proximal, flexisp, kokkinos2019iterative}.
Current state-of-the-art burst denoising
techniques~\cite{burstkpn,kokkinos2019iterative,dburst,mkpn} are based
on deep neural networks. Many of them only require coarse
registration, relying on the network to account for the small residual
misalignments~\cite{burstkpn,dburst,mkpn}.

\paragraph{Kernel Prediction Networks.}
Given a burst sequence, Mildenhall et al.~\cite{burstkpn}
predict per-pixel kernels that are then applied to the input burst
to produce the denoised output. They demonstrate that KPNs outperform
direct pixel synthesis that produces oversmooth
results. This idea has been extended to use multiple
varying size kernels at every pixel~\cite{mkpn}. KPNs have also
been used in other applications, including denoising Monte Carlo
renderings~\cite{mckpn,mckpn2,smckpn}, video
super-resolution~\cite{sreskpn} and
deblurring~\cite{zhou2019deblurring}, frame
interpolation~\cite{videokpn,videosep,liu2017video} and video
prediction~\cite{jia2016dynamic,finn2016unsupervised,liu2017video,xue2016visual}.

Given their high-dimensional output (per-pixel kernels, that are
three-dimensional in the case of burst denoising), KPNs have
significant memory and compute requirements.
Marin{\v{c}}\etal~\cite{mkpn} and Niklaus \etal~\cite{videosep} ameliorate this by predicting
spatially separable kernels: forming spatial kernels as outer products of predicted horizontal and vertical
kernels. However, this makes a strong a-priori
assumption about kernel structure, and still requires constructing and
filtering with different per-pixel kernels. In contrast, our approach
assumes that the set of per-pixel kernels for a scene span a
low-dimensional sub-space, and predicts a basis for this sub-space
based on the burst input. This approach also allows us to benefit from
fast filtering in the Fourier domain.

\section{Method}
\label{sec:method}

\begin{figure*}[!t]
  \centering
  \includegraphics[width=\linewidth]{figures/BPN.pdf}
  \caption{\label{fig:network}Our basis prediction network takes as
    input a burst of noisy input frames (a) together with the noise parameters (b).
    The frames are encoded into a shared feature space (c). These features are
    then decoded by two decoders with skip connections into a burst-specific
    basis of 3D kernels (e) and a set of per-pixel mixing coefficients (d). Both
    the coefficients and basis kernels are individually unit-normalized.
    Finally, we obtain per-pixel kernels by mixing the basis elements according
    to the coefficients and we apply them to the input burst to produce the final
    denoised image (f).
  }
\end{figure*}

In burst denoising, we are given an input noisy burst of images
$\NoisyFrame{\notation{n}}{\notation{t}}$, where
\notation{n} indexes spatial locations and $\notation{t} \in \{1,\ldots,\notation{T}\}$ the different
frames in the burst. Using a heteroscedastic Gaussian noise
model~\cite{foi2008practical}, which accounts for both read and shot noise, we
relate this to the corresponding noise-free frames $\NoiseFreeFrame{\notation{n}}{\notation{t}}$ as:
\begin{equation}
  \label{eq:nzmodel}
  \NoisyFrame{\notation{n}}{\notation{t}} \sim \mathcal{N}(\NoiseFreeFrame{\notation{n}}{\notation{t}},
  \sigma_r^2 + \sigma_s^2 \NoiseFreeFrame{\notation{n}}{\notation{t}}),
\end{equation}
where $\sigma_r^2$ and $\sigma_s^2$ are the read- and shot-noise parameters.
Choosing the first frame as reference, our goal is to produce a single denoised
image $\DenoisedFrame{\notation{n}}$ as an estimate of the first noise-free frame
$\NoiseFreeFrame{\notation{n}}{1}$.

\subsection{Kernel-based burst denoising}

Rather than train a network to regress \notation{\hat{\NoiseFreeFrameTensor}} directly, Kernel
Prediction Networks output a field of denoising kernels
$\Kernel{\notation{n}}{\notation{\delta}}{\notation{t}}$, one for each pixel \notation{n} at each frame \notation{t}.
The kernels have a spatial support $\notation{K}\times \notation{K}$, indexed by $\notation{\delta}$,
with separate weights for each frame. Given these predicted kernels, the
denoised estimate \notation{\hat{\NoiseFreeFrameTensor}} is formed as:
\begin{equation}
  \label{eq:kpn}
  \DenoisedFrame{\notation{n}} = \sum_{\notation{t}} \sum_{\notation{\delta}}
  \Kernel{\notation{n}}{\notation{\delta}}{\notation{t}}\NoisyFrame{\notation{n}-\notation{\delta}}{\notation{t}}.
\end{equation}
A key bottleneck in this pipeline is the prediction of this dense kernel field
\notation{w}, which requires producing $\notation{K}^2\notation{T}$ numbers at
\emph{every} pixel of the output.
Since networks with high-dimensional outputs are both expensive and require learning a large number of parameters in their last layer, KPNs have typically been used only
with small kernels ($\notation{K}=5$ in \cite{burstkpn}).

\subsection{Basis Prediction Networks}

Instead of directly predicting unconstrained kernels for each spatial location, we
designed a network that outputs:
\begin{inparaenum}[(1)]
\item a global \emph{kernel basis} $\Basis{\notation{\delta}}{\notation{b}}{\notation{t}}$, of size $\notation{K}^2\notation{T}\times \notation{B}$ with $\notation{b}
  \in \{1,\ldots \notation{B}\}$; and
\item a \notation{B} dimensional coefficient vector $\Coeff{\notation{n}}{\notation{b}}$ at each spatial location.
\end{inparaenum}
\begin{equation}
  \label{eq:kbasis}
  \Kernel{\notation{n}}{\notation{\delta}}{\notation{t}} = \sum_{\notation{b}}
  \Basis{\notation{\delta}}{\notation{b}}{\notation{t}} \Coeff{\notation{n}}{\notation{b}}.
\end{equation}
Note that we typically choose the number of basis kernels
$\notation{B} \ll \notation{K}^2\notation{T}$.  This implies that all the kernels
for a given burst lie in a low-dimensional subspace, but this subspace
will be different for different bursts, \ie the basis is
burst-specific.
This procedure allows us to recreate a full kernel field with far
fewer predictions. Assuming a $W\times H$ resolution image, we need
only make $WHB+\notation{K}^2TB$ predictions to effectively recreate a
kernel field of size $WHK^2\notation{T}$.

We designed our network following an encoder-decoder architecture with
skip connections~\cite{unet}. Our model, however, has two decoder
branches, one for the basis, the other for the coefficients
(Figure~\ref{fig:network}).
The encoder is shared between the two branches because the meaning of
the coefficients \notation{c} is dependent on the predicted basis
\notation{v} in Equation~\eqref{eq:kbasis}, so the two outputs need to
be co-ordinated.
This encoder takes the noisy burst and noisy parameters as input, and
through multiple levels of downsampling and global average pooling at
the end, yields a single global feature vector as its encoding of the
image.
The per-pixel coefficients \notation{c} are then decoded from the
encoder bottleneck to the full image resolution $W\times H$, with
\notation{B} channels as output.
The common basis \notation{v} is decoded up to \emph{distinct} spatial
dimensions --- that of the kernels $\notation{K}\times \notation{K}$ --- with
$\notation{B} \times \notation{T}$ output channels.

Since the basis branch decodes to a different spatial resolution, we need a
careful treatment of the skip connections. Unlike a usual U-Net, the encoder and
decoder feature size do not match.
Specifically, a pixel $\notation{\delta}$ in the basis kernel
$\Basis{\notation{\delta}}{b}{\cdot}$ has no meaningful relation to a pixel
$\notation{n}$ in the input frames $\NoisyFrame{\notation{n}}{\cdot}$.
Therefore, in the skip connections from the shared encoder to the
basis decoder, we apply a global spatial average pooling of the
encoder's activations, and replicate the average vector to the
resolution of the decoder layer.
This mechanism ensures the encoder information is globally aggregated
without creating nonsensical correspondences between kernel and image
locations, while allowing features at multiple scales of the encoder
to inform the basis decoder.

We ensure each of the reconstructed kernel \notation{w} has positive
weights that sum to one, to represent averaging. We implement this
constraint using soft-max normalizations on \emph{both} the
coefficient and basis decoder outputs.
So every 3D kernel of the basis $\Basis{\cdot}{\notation{b}}{\cdot}$ and
every coefficient vector $\Coeff{\notation{n}}{\cdot}$ is normalized
individually. A more detailed description of the architecture is
provided in the supplementary.

Our network is trained with respect to the quality of the final
denoised output $\hat{R}$---with an $L2$ loss on intensities and $L1$
loss on gradients. Like \cite{burstkpn}, we additionally use a
per-frame loss to bias the network away from relying only on the
reference frame. We do this with separate losses on denoised estimates
from each individual frame of the input burst (formed as
$\hat{R}_t[n]= T\sum_\delta w_n[\delta,t]I[n-\delta,t]$). These are
added to main training loss, with a weight that is decayed across
training iterations.

\subsection{Efficient Fourier domain filtering}
Filtering by convolution with large kernels is commonly implemented in the
Fourier domain, where the filtering complexity is quasilinear in image size,
while the complexity of direct convolution scales with the product of image- and
kernel-size. But because the kernels \notation{w} in KPNs vary
spatially, Equation~\eqref{eq:kpn} does not represent a standard convolution, ruling out this acceleration.

In our case, because our kernels are defined with respect to a small
set of ``global'' basis vectors, we can leverage Fourier-domain
convolution to speed up filtering.  We achieve this by combining and
re-writing the expressions in Eq.~\eqref{eq:kpn} and
Eq.~\eqref{eq:kbasis} as:
\begin{eqnarray}
  \label{eq:kfourier}
  \DenoisedFrame{\notation{n}} &=& \sum_{\notation{t}} \sum_{\notation{\delta}} \Kernel{\notation{n}}{\notation{\delta}}{\notation{t}} \NoisyFrame{\notation{n}-\notation{\delta}}{\notation{t}}\notag\\
    &=& \sum_t \sum_{\notation{\delta}} \sum_{\notation{b}} \Basis{\notation{\delta}}{\notation{b}}{\notation{t}}
    \Coeff{\notation{n}}{\notation{b}} \NoisyFrame{\notation{n}-\notation{\delta}}{\notation{t}}\notag\\
    &=& \sum_b \Coeff{\notation{n}}{\notation{b}} \sum_t \sum_{\notation{\delta}}
    \Basis{\notation{\delta}}{\notation{b}}{\notation{t}} \NoisyFrame{\notation{n}-\notation{\delta}}{\notation{t}}\notag\\
    &=& \sum_b \Coeff{\notation{n}}{\notation{b}} \sum_t
    \IndexedConv{\NoisyFrame{\cdot}{\notation{t}}}{\Basis{\cdot}{\notation{b}}{\notation{t}}}{\notation{n}},
\end{eqnarray}
where $\star$ denotes standard spatial 2D convolution with a spatially-uniform kernel.

In other words, we first form a set of \notation{B} filtered versions of the input burst
\notation{I} by
standard convolution with each of the basis kernels---convolving each frame in
the burst \notation{I} with the corresponding ``slice'' of the basis kernel---and then
taking a spatially-varying linear combination of the filtered intensities at
each pixel based on the coefficients \notation{c}. We can carry out these standard
convolutions in the Fourier domain as:
\begin{equation}
  \label{eq:kfr2}
  \Conv{\NoisyFrame{\cdot}{\notation{t}}}{\Basis{\cdot}{\notation{b}}{\notation{t}}} =
  \mathcal{F}^{-1}\left(\mathcal{F}(\NoisyFrame{\cdot}{\notation{t}}) \cdot
    \mathcal{F}(\Basis{\cdot}{\notation{b}}{\notation{t}}) \right),
\end{equation}
where $\mathcal{F}(\cdot)$ and $\mathcal{F}^{-1}(\cdot)$ are spatial forward and
inverse Fourier transforms. This is significantly more efficient for larger
kernels, especially since we need not repeat forward Fourier transform of
the inputs \notation{I} for different basis kernels.

\section{Experiments}
\label{sec:exp}

\CR{We closely follow Mildenhall~et~al.~\cite{burstkpn} for training and evaluation.
Our model is designed for bursts of $\notation{T}=8$ frames with resolution $128\times 128$. Following the procedure of \cite{burstkpn}, \CR{we use} training and validation sets constructed from the Open Images dataset~\cite{openimages}, \CR{with shot and read noise parameters uniformly sampled in the log-domain: $\log(\sigma_r)\in[-3, -1.5]$, and $\log(\sigma_s)\in [-4, -2]$.} We also use \cite{burstkpn}'s set of 73 \CR{grayscale} test images for evaluation.

Our default configuration uses bases with $B=90$ kernels of size $K=15$. We train our network (as well as all ablation baselines) using Adam~\cite{kingma2014adam} with a batch-size of 24 images, and an initial learning rate of $10^{-4}$. We train for a total of about 600k iterations, dropping the learning twice, by $\sqrt{10}$ each time, whenever the validation loss saturates.

\begin{table}[!t]\small
  \centering
   \setlength\tabcolsep{4pt}
  \begin{tabular}{lcccc}
    \toprule
    Method & Gain $\propto$ 1  & Gain $\propto$ 2& Gain $\propto$ 4  & Gain $\propto$ 8 \\
    \midrule
    HDR+~\cite{hdrplus} & 31.96 & 28.25 & 24.25 & 20.05 \\
    BM3D~\cite{bm3d} & 33.89 & 31.17 & 28.53 & 25.92 \\
    NLM~\cite{nlmeans} & 33.23 & 30.46 & 27.43 & 23.86 \\
    VBM4D~\cite{vbm4d} & 34.60 & 31.89 & 29.20 & 26.52 \\
    Direct & 35.93 & 33.36 & 30.70 & 27.97 \\
    \addlinespace
    KPN*~\cite{burstkpn} & 36.47 & 33.93 & 31.19 & 27.97 \\
    KPN ($\notation{K}=5$) & 36.35 & 33.69 & 31.02 & 28.16 \\
    MKPN~\cite{mkpn}& 36.88 & 34.22 & 31.45 & 28.52 \\
    \addlinespace
    \CR{BPN (ours)} & \textbf{38.18} & \textbf{35.42} & \textbf{32.54} & \textbf{29.45} \\
    \bottomrule
  \end{tabular}
  \caption{\label{tab: trans} Denoising performance on a synthetic \CR{grayscale} benchmark~\cite{burstkpn}. We report performance in terms of Average PSNR
    (dB). As in \cite{burstkpn}, our method was not trained on the
    noise levels implied by the largest gain (fourth column). KPN and MKPN refer to our implementation of these techniques, while numbers for KPN* correspond to those reported in the KPN paper itself~\cite{burstkpn}. Results for all other methods\CR{, including end-to-end regression to denoised intensities (denoted as Direct)}, are from \cite{burstkpn}. Our method
    widely outperforms all prior methods at all noise levels.}
\end{table}

\begin{figure*}
   \centering
   \includegraphics[width=0.89\linewidth]{figures/results-sm.pdf}
    \caption{We illustrate denoising performance on a benchmark
       synthetic \CR{grayscale} test set~\cite{burstkpn} for our method, a direct prediction
       network (which directly regresses denoised pixels), and two KPN
       variants~\cite{burstkpn,mkpn} with the same kernel size $\notation{K}=15$ as
       our method. The numbers in inset refer to the PSNR (dB) on the
       full image. In addition to better quantitative performance, our method
       does better at reproducing perceptual details like textures, edges, and
       text. }
    \label{fig: result}
\end{figure*}

A reference implementation of our method is available at \href{https://www.cse.wustl.edu/~zhihao.xia/bpn/}{https://www.cse.wustl.edu/\textasciitilde{}zhihao.xia/bpn/}.

\subsection{Denoising performance}

Table~\ref{tab: trans} reports the PSNR of our denoised outputs on the \CR{grayscale} test set~\cite{burstkpn}. Each noise level corresponds to a sensor gain value (one stop increments of the ISO setting in a camera). \CR{The gains correspond to the following values for $(\log(\sigma_s), \log(\sigma_r))$:  $1\rightarrow(-2.2, -2.6), 2\rightarrow(-1.8, -2.2), 4\rightarrow(-1.4, -1.8), 8\rightarrow(-1.1, -1.5)$.} The highest noise level, denoted as $\text{Gain} \propto 8$, lies outside the range we trained on. We use it to evaluate our model's extrapolation capability. In addition to our own model, we also report results for a motion-alignment-based method~\cite{hdrplus}, several approaches based on non-local filtering~\cite{nlmeans,bm3d,vbm4d}, as well as the standard KPN burst denoiser~\cite{burstkpn}---which is the current state-of-the-art. Since we did not have access to the original KPN model, we implemented a version ourselves (that we use in ablations in the next section) and also report its performance in Table~\ref{tab: trans}. We find it closely matches the performance reported in \cite{burstkpn}. Additionally, we train a network to directly regress the denoised pixel values from the input burst (\ie, without kernels), as well as our implementation of \cite{mkpn} with a larger kernel size of $K=15$ for fair comparison.

We find that our method outperforms KPN~\cite{burstkpn} by a significant margin, over 1 dB PSNR at all noise levels. Our implementation of \cite{mkpn} also does well, but remains inferior to our model. We show qualitative results for a subset of methods in Figure~\ref{fig: result}. Our have fewer artifacts, especially in textured regions and around thin structures like printed text.

\subsection{Ablation and analysis}
\begin{table}[!t]\small
  \centering
  \setlength\tabcolsep{0.75pt}
  \begin{tabular}{lcccc}
    \toprule
    & Gain $\propto$ 1  & Gain $\propto$ 2& Gain $\propto$ 4  & Gain $\propto$ 8 \\
    \midrule
    KPN ($\notation{K}=15$) & 34.29 & 31.80 & 28.23 & 24.86 \\
    Separable ($\notation{K}=15$) & 34.67 & 32.05 & 28.52 & 25.12 \\
    \addlinespace
    Ours ($\notation{K}=5$) & 35.70 & 33.02 & 29.16 & 25.57 \\
    Ours ($\notation{K}=9$) & 36.22 & 33.41 & 29.56 & 25.94 \\
    \addlinespace
    Ours ($\notation{B}= 10$) & 35.31 & 32.69 & 28.95 & 25.43 \\
    Ours ($\notation{B}= 50$) & 36.10 & 33.33 & 29.45 & 25.88 \\
    Ours ($\notation{B}= 130$) & 36.27 & 33.47 & 29.57 & \textbf{25.99} \\
    \addlinespace
    \textbf{Ours ($\mathbf{\notation{K}=15}$, $\mathbf{\notation{B} = 90}$)} & \textbf{36.29} & \textbf{33.57} & \textbf{29.62} & \textbf{25.99} \\
    \addlinespace
    Common Spatial Basis & 35.71 & 33.04 & 29.23 & 25.71 \\
    Per-frame Spatial Basis & 36.21 & 33.46 & 29.56 & 25.92 \\
    \addlinespace
    Fixed basis & 34.66 & 32.15 & 28.68 & 25.39 \\
    \bottomrule
  \end{tabular}
  \caption{\label{tab:ablation} Ablation study on our validation dataset. Performance is reported in terms of Average PSNR (dB).
  Beyond motivating our parameter choices ($\notation{K}=15$,$\notation{B} = 90$), this demonstrates that our use of a burst-specific spatio-temporal basis outperforms standard KPN~\cite{burstkpn}, separable spatial kernels, a common spatial basis for all burst frames, separate spatial bases per-frame, and a fixed, input-agnostic basis. All these variants were trained with the same settings ($\notation{K}=15$, $\notation{B} = 90$) as our model.}
\end{table}

Our approach leads to better denoising quality because it enables larger kernels without vastly increasing the network's output dimensionality and number of learnable parameters. To tease apart the contributions of kernel size and the structure of our kernel decomposition, we conduct an ablation study on our validation set. The results can be found in Table~\ref{tab:ablation}.
The performance gap between the test and validation set results (Table~\ref{tab: trans} and~\ref{tab:ablation}) comes from differences in the datasets themselves.

\noindent\textbf{Kernel Size.} As a baseline, we consider using KPN directly with our larger kernel size of $K=15$. We also consider predicting a single separable kernel at that size (\cite{mkpn} predicts separable kernels at multiple sizes, and adds them together). We find that our network outperforms the large kernel KPN variant at all noise levels---suggesting that simply increasing the kernel size is not enough. It also outperforms separable kernel prediction, suggesting that a low-dimensional subspace constraint better captures the structure of natural images than spatial separability.

For completeness, we also evaluate our basis prediction network with smaller kernels, $K=9$ and $K=5$. Although, this leads to a drop in performance compared to our default configuration, these variants still perform better than the original KPN---suggesting our approach has a regularizing effect that benefits even smaller kernels.

\noindent\textbf{Basis Size.} The number of basis elements in our default
configuration, $B=90$, was selected from a parameter search on the validation set.
We include this analysis in Table~\ref{tab:ablation}, reporting PSNR values for
$B$ ranging from 10 to 130. We find that bases with fewer than 90 kernels lead
to a drop in quality. The larger bases, $B=130$, also performs very slightly
worse than $B=90$. We hypothesize that large bases start to have too many
degrees of freedom. This increases the dimensionality of the network's output,
which negates the benefits of a subspace restriction.

\noindent\textbf{Spatial vs.\ Spatio-temporal Basis Decomposition.} Note that we define our basis as a subspace to span 3D kernels---i.e., each of our basis elements $v_b$ is a 3D spatio-temporal kernel. We predict a single weight $c_n[b]$ at each location, which is applied to corresponding spatial kernels $v_n[\cdot,t]$ for all frames $t$. However, there are other possible choices for decomposing 3D kernels, and we consider two of these in our ablation (Table~\ref{tab:ablation}). In both cases, we output coefficients $c_{n,t}[b]$ that vary per-frame, in addition to per-location---and are interpreted as separate coefficients corresponding to a spatial basis kernel. In one case, we use a \emph{common spatial basis} $v_b[\delta]$ across all frames, with $w_n[\delta,t] = \sum_b c_{n,t}[b] v_b[\delta]$. In the other, we have a \emph{per-frame spatial basis} $v_{b,t}[\delta]$ for each frame, and $w_n[\delta,t] = \sum_b c_{n,t}[b] v_{b,t}[\delta]$. The per-frame basis increases the dimensionality of our coefficient output and leads to a slight drop in performance, likely due to a reduced regularizing effect. The common spatial basis, however, suffers a greater performance drop since it also forces kernels in all frames to share the same subspace.

We also compare qualitatively the spatio-temporal kernels produced by our
default configuration with those predicted by standard KPN in Figure~\ref{fig:
bkviz}. Our model makes better use of the temporal information, applying large
weights to pixels across many frames in the burst, whereas KPN tends to overly
favor the reference frame. Our network better tracks the apparent motion in the
burst, shifting the kernel accordingly. And it is capable of ignoring outliers
caused to excessive motion (all black kernels in Fig.~\ref{fig: bkviz}).

\noindent\textbf{Fixed vs.\ Burst-specific Basis.} Given that our network predicts both a basis and per-pixel coefficients, a natural question is whether a burst-specific kernel basis is even needed. To address this, we train a network architecture without a basis decoder to only predict coefficients for each burst, and instead learn a basis that is fixed across all bursts \CR{in the training set}. The fixed basis is learned jointly with this network as a direct learnable tensor. Table~\ref{tab:ablation} shows that using a fixed basis in this manner leads to a significant decrease in denoising quality (although still better than standard KPN).

This suggests that while a subspace restriction on kernels is useful, the ideal
subspace is scene-dependent and must be predicted adaptively. We further explore
this phenomenon in Table~\ref{tab:rank}, where we quantify the rank of the
predicted bases for individual images, and for pairs of images.
Note that the rank can be lower than $B$, since we do not effectively require
the `basis' vectors $\{v_b[\cdot,\cdot]\}$ to be linearly independent.
We find that the combined rank of basis kernels of image pairs (obtained by
concatenating the two bases) is nearly twice the rank obtained from individual
images---suggesting limited overlap between the basis sets of different images.
We also explicitly compute the average overlap ratio across image pairs as $1 - rank(v, v')/[rank(v) + rank(v')]$, and find it to be around $5\%$ on average. This low overlap implies that different bursts do indeed require different bases, justifying our use of burst-specific bases.

\begin{table}[!t]\small
  \centering
  \setlength\tabcolsep{2pt}
  \begin{tabular}{lcccc}
    \toprule
     & Gain $\propto$ 1  & Gain $\propto$ 2& Gain $\propto$ 4  & Gain $\propto$ 8 \\
    \midrule
    $rank(v)$ & 80.6 & 81.8 & 84.3 & 86.2 \\

    \addlinespace
    $rank(v, v')$ & 152.2 & 154.5 & 159.6 & 165.2 \\
    Overlap ratio & 5.4\% & 5.5\% & 5.4\% & 4.4\% \\
    \bottomrule
  \end{tabular}
  \caption{\label{tab:rank} Average basis rank for each noise level (first row), average rank of the union of two bases from random burst pairs (second row), and the average overlap ratio (third row) between the subspaces spanned by the two bases. The low overlap justifies our prediction of a burst-specific basis.}
\end{table}
\begin{table}[!t]\small
  \centering
  \setlength\tabcolsep{2pt}
 \begin{tabular}{lccc}
    \toprule
    & GFLOPs & Runtime (s) \\
    \midrule
    KPN ($\notation{K}=15$) & 59.3 & 0.63 \\
    Separable ($\notation{K}=15$) & 29.9 & 0.43 \\
    \addlinespace
    Ours ($\notation{K}=5$) & 28.9 & 0.24\\
    Ours ($\notation{K}=9$) & 29.1 & 0.29\\
    \addlinespace
    Ours ($\notation{B}= 10$) & 26.5  & 0.19\\
    Ours ($\notation{B}= 50$) & 28.2 & 0.27\\
    Ours ($\notation{B}= 130$) & 31.7 & 0.41\\
    \addlinespace
    \textbf{Ours ($\mathbf{\notation{K}=15}$, $\mathbf{\notation{B} = 90}$)} & 29.9 & 0.30\\
    \addlinespace
    Common Spatial Basis & 40.8 & 0.49 \\
    Per-frame Spatial Basis & 41.9 & 0.57 \\
  \bottomrule
   \end{tabular}
  \caption{\label{tab:runtime} FLOPS and runtimes on 1024$\times$768 resolution
    images for different KPN denoising approaches. All variants of our basis
    prediction network are significantly faster than KPN and match the compute
    cost of separable filters (with better denoising quality). Increasing the
    kernel size for our technique comes at marginal cost thanks for the Fourier
    filtering approach. This allows us to use large kernels for better denoising
    performance.}
\end{table}

\subsection{Computational expense}

Next, we evaluate the computational expense of our approach and compare it to
the different ablation settings considered in Table~\ref{tab:ablation},
including standard KPN. We report the total number of floating point operations
(FLOPs) required for network prediction and filtering in Table~\ref{tab:runtime}.
We find that in addition to producing higher-quality results, our approach also
requires significantly fewer FLOPs than regular KPN \CR{for the same kernel size}.
This is due to the reduced complexity of our final prediction layer, as well as
efficient filtering in the Fourier domain. Also, we find that our
approach has nearly identical complexity as separable kernel prediction, while
achieving higher denoising performance because it can express a more general
class of kernels.

In addition to the evaluation FLOPs, Table~\ref{tab:runtime} reports measured
running times for the various approaches, benchmarked on a 1024 $\times$ 768
image on an NVIDIA 1080Ti GPU.
To compute these timings, we divide the image into 128$\times$128 non-overlapping
patches to form a batch and send it to the denoising network.
Since regular KPN has high memory requirements, we select the maximum
batch size for each method and denoise the entire image in multiple runs. This
maximizes GPU throughput.
We find that our approach retains its running time advantage
over KPN in practice. It is also a little faster than separable kernel
prediction---likely due to the improved cache performance we get from using Fourier-domain
convolutions.

\begin{figure*}
   \centering
   \includegraphics{figures/bkviz-sm.pdf}
    \caption{\label{fig: bkviz} We visualize a few 3D kernels predicted by our approach (with
       $K=15$), and those produced by standard KPN (with $K=5$ and $K=15$). For kernels
       predicted at a given location, we also show crops of the different
       noise-free frames centered at that point, with the support of the
       kernel marked in blue. In comparison to those from KPN, our
       kernels are more evenly distributed across all frames in the
       burst, with spatial patterns that closely follow the
       apparent motion in the burst.}
\end{figure*}

\begin{table}[!t]\small
  \centering
   \setlength\tabcolsep{4pt}
  \begin{tabular}{lcccc}
    \toprule
    Method & Gain $\propto$ 1  & Gain $\propto$ 2& Gain $\propto$ 4  & Gain $\propto$ 8 \\
    \midrule
    Direct & 38.16 &  35.39 & 32.50 & 30.27 \\
    KPN ($\notation{K}=5$) & 38.86 & 35.97 & 32.79 & 30.01 \\
    \addlinespace
    \CR{BPN (ours)} & \textbf{40.16} & \textbf{37.08} & \textbf{33.81} & \textbf{31.19} \\
    \bottomrule
  \end{tabular}
  \caption{\label{tab: trans_color} Denoising performance on our synthetic color test
    set. We report performance in terms of Average PSNR (dB).
    Here, KPN refers to our extension of~\cite{burstkpn} to produce color kernels.
    Our method outperforms KPN by more than 1 dB at all noise levels.}
\end{table}

\subsection{Color burst denoising}

\CR{Finally, we report results on a color burst denoising task. We use a similar observation model as \eqref{eq:nzmodel} with noise independently added to each color channel (note this ignores multiplexed measurements and demosaicking). For kernel denoising, we use separate kernels for each color channel at each location. We extend standard KPN~\cite{burstkpn} to produce this directly, and modify our method to have the basis decoder produce a ``color'' kernel basis (of size $3\notation{K}^2\notation{T}\times \notation{B}$), while the coefficient decoder still outputs a \notation{B} dimensional coefficient vector.}

\CR{We use the same training protocol as for grayscale images, using color versions of the Open Images dataset. In this case, training takes 1900k iterations with batches of 8 color images. We construct a new synthetic test set of 100 images from the Open Images validation dataset, with no overlap with our training set. We report comparisons in Table~\ref{tab: trans_color}, showing a similar improvement over KPN~\cite{burstkpn} as for grayscale images---over 1 dB PSNR at all noise levels. We include qualitative comparisons in Figure~\ref{fig: color}.}

\newcommand{\includecolor}[1]{
    \includegraphics[height=2.45cm]{color_results/#1_gt_full.png} &
    \includegraphics[height=2.45cm]{color_results/#1_nz_crop.png} &
    \includegraphics[height=2.45cm]{color_results/#1_direct_crop.png} &
    \includegraphics[height=2.45cm]{color_results/#1_kpn_crop.png} &
    \includegraphics[height=2.45cm]{color_results/#1_ours_crop.png} &
    \includegraphics[height=2.45cm]{color_results/#1_gt_crop.png}\vspace{-0.3em}
}

\begin{figure*}[!h]
  \centering
\setlength{\tabcolsep}{5pt}
{\small \begin{tabular}{cccccc}
Full Input Image & Noisy Reference & Direct & KPN~\cite{burstkpn} & Ours & GT \\
\includecolor{7} \\
& & 28.36 & 29.02 & 29.73 &\\
\includecolor{21} \\
& & 29.55 & 29.79 & 30.95 &\\
\end{tabular}}
\caption{\CR{We show examples of color denoising using our method on our synthetic color test set, comparing these to direct prediction and our color-extended version of KPN~\cite{burstkpn} (with $\notation{K}=5$). Numbers refer to PSNR (dB) on the full image.}}
\label{fig: color}
\end{figure*}

\section{Conclusion and future work}
\label{sec:conc}

In this work, we argue that local, per-pixel burst denoising kernels are highly coherent. Based on this, we present a basis prediction network that jointly infers a global, low-dimensional kernel basis and the corresponding per-pixel mixing coefficients that can be used to construct per-pixel denoising kernels. This formulation significantly reduces memory and compute requirements compared to prior kernel-predicting burst denoising methods, allowing us to substantially improve performance by using large kernels, while reducing running time.

While this work focuses on burst denoising, KPN-based methods have been applied to other image and video enhancement tasks including video super-resolution~\cite{sreskpn}, frame interpolation~\cite{videokpn,videosep,liu2017video}, video prediction~\cite{jia2016dynamic,finn2016unsupervised}, and video deblurring~\cite{zhou2019deblurring}. All these tasks exhibit similar structure and will likely benefit from our approach.

There are other forms of spatiotemporal structure that can be explored to build on our work. For example, image enhancement methods have exploited self-similarity at different scales~\cite{glasner2009sr} suggesting other decompositions in scale space. Also, we assume a fixed basis size globally. Adapting this spatially to local content could yield further benefits. Finally, KPNs are still, at their heart, local filtering methods and it would be interesting to extend our work to non-local filtering methods~\cite{bm3d,vbm3d,vbm4d}.

\noindent\textbf{Acknowledgments.} ZX and AC acknowledge support from NSF award IIS-1820693, and a gift from Adobe Research.

{\small
\bibliographystyle{ieee_fullname}

redpajama_set_name: RedPajamaArXiv